Python金融大数据分析——第14章 Web集成 笔记1 Myth丶恋晨 2022-05-20 07:37 213阅读 0赞 * 第14章 Web集成 * 14.1 Web基础知识 * 14.1.1 ftplib * 14.1.2 http.client * 14.1.3 requests * 14.2 Web图表绘制 * 14.2.1 静态图表绘制 * 14.2.2 交互式图表绘制 * 14.2.3 实时图表绘制 # 第14章 Web集成 # ## 14.1 Web基础知识 ## ### 14.1.1 ftplib ### # 将文件传输到FTP服务器 import ftplib import numpy as np ftp = ftplib.FTP('quant-platform.com') ftp.login(user='***', passwd='***') # 生成一个包含随机数据的NumPy ndarray 对象 , 保存到磁盘作为传输文件 np.save('./data/array', np.random.standard_normal((100, 100))) f = open('./data/array.npy', 'r') # 二进制传输, 写人服务器 ftp.storbinary('STOR array.npy', f) # 查看一下FTP服务器的目录 ftp.retrlines('LIST') # 反向操作,读取一个远程文件并保存到磁盘 f = open('./data/array_ftp.npy', 'wb').write ftp.retrbinary('RETR array.npy', f) # 现在不再需要将文件保存在服务器了,可以删除它: ftp.delete('array.npy') ftp.retrlines('LIST') # 关闭FTP服务器连接 ftp.close() # ftpllb可以通过函数FTP_TLS安全连接到FTP服务器。 # 一旦建立了这样的安全连接,所有其他操作都保持不变 ftps = ftplib.FTP_TLS('quant-plltform.com') ftps.login(user='***', passwd='***') ftps.prot_p() ftp.retrlines('LIST') ftps.close() # 因为用的比较少,所以没有测试,了解思路就好 ### 14.1.2 http.client ### import http.client as hc http = hc.HTTPConnection('www.baidu.com') http.request('GET', '/') resp = http.getresponse() resp.status, resp.reason # (200, 'OK') content = resp.read() content[:100] # b'<!DOCTYPE html><!--STATUS OK-->\r\n<html>\r\n<head>\r\n\t<meta http-equiv="content-type" content="text/html' http.close() ### 14.1.3 requests ### import requests url = 'http://www.baidu.com' response = requests.get(url) data = response.content ## 14.2 Web图表绘制 ## ### 14.2.1 静态图表绘制 ### import tushare as ts # 中国卫星(600118)股票2014年以来的股票走势 data = ts.get_k_data('600118', '2014-01-01', ktype='D') data.plot(x='date', y='close') ![中国卫星(600118)股票2014年以来的股票走势][600118_2014] import bokeh.plotting as bp bp.output_file('E:/project/MyPyTest/python_for_finance/data/600118.html', title='Bokeh Example (Static)') p = bp.figure(title="line", plot_width=800, plot_height=600) p.line( x=data['date'].astype('datetime64[ns]').values.tolist(), # x coordinates y=data['close'].values.tolist(), # y coordinates color='#0066cc', # set acolor for the line legend='中国卫星' ) bp.show(p) 图像自动在浏览器中打开 ![这里写图片描述][70] 更多关于 bokeh 的例子 参考: [https://bokeh.pydata.org/en/latest/docs/gallery.html][https_bokeh.pydata.org_en_latest_docs_gallery.html] ### 14.2.2 交互式图表绘制 ### bokeh 还包括一些交互性元素(“工具”): pan 支持图表平移(就像用摄影机摇拍);也就是说, 相对于固定的画框移动图表(包括x和y 坐标) wheel zoom 使用鼠标滚轮实现图像缩放 bοx zoom 用鼠标标记一个方框实现缩放 reset 重置图表的原始/默认视图 save 生成可以保存为PNG格式的图表静态(位图)版本 具体的例子参见 [https://bokeh.pydata.org/en/latest/docs/gallery.html][https_bokeh.pydata.org_en_latest_docs_gallery.html] 中的 stocks 例子 ![这里写图片描述][70 1] ### 14.2.3 实时图表绘制 ### 在这里我们用随机数代替实时数据,创建一个 bokeh\_test.py: import bokeh.plotting as bp from bokeh.layouts import column from bokeh.models import Button import time import random p = bp.figure(x_range=(0, 100), y_range=(0, 100)) r = p.line( x=[], # x coordinates y=[], # y coordinates color='#0066cc', # set acolor for the line legend='random' ) ds = r.data_source clicked = False def callback(): global clicked if (clicked): return else: clicked = True i = 0 start = time.time() # run for 60 seconds while (time.time() - start) < 60: new_data = dict() y = random.randint(0, 100) new_data['x'] = ds.data['x'] + [i] new_data['y'] = ds.data['y'] + [y] ds.data = new_data i += 1 time.sleep(1) button = Button(label="Start") button.on_click(callback) bp.curdoc().add_root(column(button, p)) 启动 bokeh服务 E:\\project\\MyPyTest\\python\_for\_finance\\data>**bokeh serve –show bokeh\_test.py** 关于 bokeh服务 参考:[http://bokeh.pydata.org/en/latest/docs/user\_guide/server.html][http_bokeh.pydata.org_en_latest_docs_user_guide_server.html] 启动后浏览器会自动打开连接: [http://localhost:5006/bokeh\_test][http_localhost_5006_bokeh_test] 点击网页中的 “Start” 按钮,程序就开始显示实时数字了: ![这里写图片描述][70 2] 如果想要展示真实的数据,把while循环中的代码变成获取股票、汇率等实时数据的 api 代码即可。 ^\_^ [600118_2014]: /images/20220520/ff6fec23636c4ebc8a63938f3b1ebf9e.png [70]: /images/20220520/bc74fefd55b14c15ab6205c70c754536.png [https_bokeh.pydata.org_en_latest_docs_gallery.html]: https://bokeh.pydata.org/en/latest/docs/gallery.html [70 1]: /images/20220520/2ac763ecf61742318047704d87ea01de.png [http_bokeh.pydata.org_en_latest_docs_user_guide_server.html]: http://bokeh.pydata.org/en/latest/docs/user_guide/server.html [http_localhost_5006_bokeh_test]: http://localhost:5006/bokeh_test [70 2]: /images/20220520/5aa567bf14a44b6aab01e39f347316dc.png
相关 Python金融大数据分析——第10章 推断统计学 笔记3 第10章 推断统计学 10.4 风险测度 10.4.1 风险价值 10.4.2 信用 向右看齐/ 2022年05月21日 12:24/ 0 赞/ 271 阅读
相关 Python金融大数据分析——第10章 推断统计学 笔记1 第10章 推断统计学 10.1 随机数 10.2 模拟 10.2.1 随机变量 心已赠人/ 2022年05月21日 08:30/ 0 赞/ 257 阅读
相关 Python金融大数据分析——第9章 数学工具 笔记 第9章 数学工具 9.1 逼近法 9.1.1 回归 9.1.2 插值 ╰半橙微兮°/ 2022年05月21日 06:45/ 0 赞/ 481 阅读
相关 Python金融大数据分析——第8章 高性能的Pyhon 笔记 第8章 高性能的Python 8.1 Python范型与性能 8.2 内存布局与性能 8.3 并行计算 - 日理万妓/ 2022年05月21日 05:54/ 0 赞/ 403 阅读
相关 Python金融大数据分析——第6章 金融时间序列 笔记 第6章 金融时间序列 6.1 pandas基础 6.1.1 使用DataFrame类的第一步 我会带着你远行/ 2022年05月21日 01:14/ 0 赞/ 479 阅读
相关 Python金融大数据分析——第10章 推断统计学 笔记2 第10章 推断统计学 10.3 估值 10.3.1 欧式期权 10.3.2 美式期权 系统管理员/ 2022年05月20日 20:09/ 0 赞/ 403 阅读
相关 Python金融大数据分析——第16章 金融模型的模拟 笔记 第16章 金融模型的模拟 16.1 随机数生成 16.2 泛型模拟类 16.3 几何布朗运动 野性酷女/ 2022年05月20日 08:18/ 0 赞/ 370 阅读
相关 Python金融大数据分析——第14章 Web集成 笔记1 第14章 Web集成 14.1 Web基础知识 14.1.1 ftplib 14.1 Myth丶恋晨/ 2022年05月20日 07:37/ 0 赞/ 214 阅读
相关 Python金融大数据分析——第13章 面向对象 笔记 第13章 面向对象和图形用户界面 13.1 面向对象 13.1.1 Python类基础知识 不念不忘少年蓝@/ 2022年05月20日 03:15/ 0 赞/ 349 阅读
相关 Python金融大数据分析——第12章 Excel集成 笔记 第12章 Excel集成 12.1 基本电子表格交互 12.1.1 生成工作簿(.xls) 淡淡的烟草味﹌/ 2022年05月20日 00:46/ 0 赞/ 260 阅读
还没有评论,来说两句吧...