from jqdatasdk import * from pyecharts import Kline,Bar,Grid
首先我们先应JQDATA 的活动演示一下如何调用pyecharts 画图
auth('acc','password') data=get_price('000001.XSHE')
auth success
先打印下 data 我们可以看到 jqdata返回的格式是 一个单index的Dataframe
data.head()
open | close | high | low | volume | money | |
---|---|---|---|---|---|---|
2015-01-05 | 10.53 | 10.55 | 10.72 | 10.27 | 434357784.0 | 4.565388e+09 |
2015-01-06 | 10.44 | 10.39 | 10.79 | 10.24 | 328971478.0 | 3.453446e+09 |
2015-01-07 | 10.25 | 10.19 | 10.42 | 10.08 | 258163619.0 | 2.634796e+09 |
2015-01-08 | 10.21 | 9.85 | 10.25 | 9.81 | 213761656.0 | 2.128003e+09 |
2015-01-09 | 9.81 | 9.93 | 10.45 | 9.69 | 380916192.0 | 3.835378e+09 |
# 因此我们初始化2个部分 kline=Kline(width=1360, height=700, page_title='000001') bar = Bar()
然后我们需要对数据进行初步的处理:
import numpy as np import pandas as pd # 做横轴的处理 datetime = np.array(data.index.map(str))
ohlc = np.array(data.loc[:, ['open', 'close', 'low', 'high']]) vol = np.array(data.volume)
将数据加载到kline和bar中
kline.add('000001', datetime, ohlc, mark_point=[ "max", "min"], is_datazoom_show=False, datazoom_orient='horizontal') bar.add('000001', datetime, vol, is_datazoom_show=True, datazoom_xaxis_index=[0, 1])
使用Grid组合两个图
grid = Grid(width=1360, height=700, page_title='QUANTAXIS') grid.add(bar, grid_top="80%") grid.add(kline, grid_bottom="30%")
grid.render('000001_plot.html')
import webbrowser webbrowser.open('000001_plot.html')
True
""" 以上是jqdata和pyecharts的结合, 不过QUANTAXIS已经对于这些进行了封装 只需要转化jqdata获取回来的数据为QADataStruct即可 """
'\n以上是jqdata和pyecharts的结合, 不过QUANTAXIS已经对于这些进行了封装 只需要转化jqdata获取回来的数据为QADataStruct即可\n'
import QUANTAXIS as QA
qads=QA.QAData.QA_DataStruct_Stock_day(data.assign(date=data.index,code='000001').set_index(['date','code']))
qads
< QA_DataStruct_Stock_day with 1 securities >
qads.plot('000001')
QUANTAXIS>> The Pic has been saved to your path: .\QA_stock_day_000001_bfq.html