导言
之前写过一篇文章,介绍用python从网易财经抓取数据并使用matplotlib和R画出K线图。上述方法尤其适用的场景,有时候在交互式绘图方面显得力不从心,今天介绍以下基于ECharts进行交互绘图,并且我们将数据的获取方式进行更新,使用TuShare这个开源的财经数据接口获取需要的数据。
简介
首先介绍下TuShare和ECharts两个有用的工具。
TuShare
TuShare点击这里访问是一个由个人开发和维护的开源财经数据接口包,其中的数据包括股票的历史行情、实时行情数据、分类数据、财务数据和基本面的数据等,数据均是从第三方取到获取并包装,使用python对数据进行清洗和处理,最终的数据格式为Pandas中支持的data.frame格式的数据。
如TuShare本身介绍所述,该数据接口适用于量化投资分析师(Quant)、对金融市场进行大数据分析的企业和个人、金融公司以及学习利用python进行数据分析的人(包括学生)。所以如果你对金融分析感兴趣,而又不想付费使用商业的数据接口,Tushare是一个非常不错的选择,如果你觉得这个接口很好用,并且愿意适当支持作者,你也可以在Tushare的主页进行捐助.
ECharts
ECharts是一个纯粹的JavaScript库,由百度开发和维护的一个开源项目。这个百度的产品确实很赞,你可以在官网查看实例,并且可以修改实例来体验产品,可以发现基本上主流的图形都可以支持,而且由于文档有中文版,适合对英语阅读有困难的朋友。
另外,hexo其实是支持echarts模块的,其插件为hexo-tag-echarts3,并且你可以参考使用方法,对于此本文就不再展开说明了。
安装
安装TuShare
TuShare的安装很简单,可以在网站查看其的系统依赖,一般Python是最新版的都支持(包括Python2和Python3)。另外,因为tushare的数据格式为data.frame,因此要求python安装了Pandas库。使用命令安装如下:
以Mac OS为准,Linux和Windows参考网站的提示方法
pip install tushare # Python2安装 |
安装完就可以使用TuShare了。
安装ECharts
实际上ECharts可以下载到本地,并可以和你的web或者app程序打包应用,我们这次使用的ECharts不是使用本地调用代码,而是使用Python的一个模块,其中动态导入js脚本实现绘图。因此本次不用安装ECharts。
实现原理
在Python的Ipython中,有个display的模块,可以实现HTML效果的展示,更出彩的是Ipython Notebook中自带JS模块可以动态导入js脚本并执行。可以先看看示例(本文的示例均是使用Ipython):
from Ipython.display import HTML |
ECharts的基本用法
ECharts是个纯粹的JS图形库,所以其语言本质是Javascript语言。根据官网的示例,我们构建以下一个图形:
option = { |
对应的图形就如下所示,并且图形可以交互显示:
所以我们看到,ECharts基于javascript绘制图形,定义好图形的参数和数据,用浏览器渲染就能得到所需要的图形,我们本文就使用了TuShare获取数据,并对数据进行清洗和处理。
TuShare的基本用法
安装TuShare后可以直接使用,tushare有各种接口返回不同的数据,非常容易操作,例如:
import tushare as ts |
示例中,我们使用了ts中的get_k_data方法,获取了股票代码为600000(浦发银行)的历史日数据,同样我们还可以使用其它接口获取其它的数据,甚至包括分时数据。
实现
股票的日K线图
根据以上我们的想法,首先
未完成,待续