1、绘制流程
1)构造Kline对象
kline = Kline()
添加数据
kline.add_xaxis(xaxis_data=x_data)
kline.add_yaxis(yaxis_data=y_data)
全局配置
kline.set_global_opts( 可配置内容包括:提示框(opts.TooltipOptsx)、区域缩放(opts.DataZoomOptsy)、视觉映射配置项(opts.VisualMapOpts)、坐标轴指示器配置项(opts.AxisPointerOpts)、区域选择组件配置项(opts.BrushOpts)等
2)构造上图的Line对象
line = Line()
添加策略线数据,策略线数据由买卖两点组成,本文选择最小值为买入点,在最小值基础上,求出日期大于最小值日期的子集的最大值,令此最大值为卖出点。
添加经过买卖点的两条垂直参考线。
添加经过最大值的水平参考线。
3)kline与上图的line叠加为上图
4)构造Bar对象
5)构造下图的Line对象
添加下图经过买卖点日期的两条垂直参考线。
6)Bar与下图Line叠加为下图
7)上下图组合为最后输出图
2、代码
import tushare as tsfrom pyecharts.faker import Fakerfrom pyecharts import options as optsfrom pyecharts.charts import Bar,Kline,Line,Grid,Tabfrom pyecharts.globals import ThemeTypeimport pyecharts.chartsimport pandas as pddf=ts.get_hist_data('sh',start='2020-01-01') df=df.iloc[::-1]mount_data=df[['open','close','low','high']]date=list(mount_data._stat_axis.values)new_data=[]#绘制k线图所需数据,第一个为开盘价,第二个为收盘价,第三为最小值,第四为最大值for i in range(len(date)): gum_data=[] for j in mount_data.columns.values: gum_data.append(mount_data.iloc[i][j]) new_data.append(gum_data) v_data=[df['volume'][j] for j in range(len(date))]#成交量#求收盘价的最小值min=df['close'].min()#最小值对应的日期date_min=df[df['close']==min].index[0]#最小值右面的子集df_right=df[df.index>date_min]#最小值右面子集的最大值max_right=df_right['close'].max()#最小值右面子集的最大值对应的日期date_max_right=df_right[df_ri