mpl_finance是python中可以用来画出蜡烛图、线图的分析工具,目前已经从matplotlib中独立出来。
函数接口说明
常用函数接口如下所示,函数命中的ochl分别对应open close high low,ax为plot的axes实例;其中quotes为(time,open,close,high,low,...)组成的序列。
candlestick2_ochl(ax,opens,closes,highs,lows,width=4,colorup='k',colordown='r',alpha=0.75)
candlestick2_ohlc(ax,opens,closes,highs,lows,width=4,colorup='k',colordown='r',alpha=0.75)
candlestick_ochl(ax,quotes,width=0.2,colorup='k',colordown='r',alpha=1.0)
candlestick_ohlc(ax,quotes,width=0.2,colorup='k',colordown='r',alpha=1.0)
plot_day_summary2_ochl(ax,opens,closes,highs,lows,ticksize=4,colorup='k',colordown='r')
plot_day_summary2_ohlc(ax,opens,highs,lows,closes,ticksize=4,colorup='k',colordown='r')
plot_day_summary_oclh(ax,quotes,ticksize=3,colorup='k',colordown='r')
plot_day_summary_ohlc(ax,quotes,ticksize=3,colorup='k',colordown='r')
volume_overlay(ax,opens,closes,volummes,colorup='k',colordown='r',width=4,alpha=1.0)
volume_overlay2(ax,closes,volumes,colorup='k',colordown='r',width=4,alpha=1.0)
volume_overlay3(ax,quotes,colorup='k',colordown='r',width=4,alpha=1.0)//目前这个函数使用起来貌似会存在问题,画出的柱状图高度一致,并没有体现数据的变化
时间格式问题
mpl_finance模块使用时间需要是浮点类型数据,转换方式如下,需要使用matplotlib中dates模块的date2num函数进行转换:
import matplotlib.dates as dts
timeRecord = dts.date2num(datetime.datetime(yearTime,mothTime,dayTime,hourTime,minitueTime,secTime,msSecTime))
颜色设置
简单示例
... ...
fig1,[ax1,ax2] = plt.subplots(2,1,sharex=True)
mpf.candlestick_ohlc(ax1,self.inputPlotData,colorup='r',colordown='b')
ax1.set_title('candlestick')
ax1.set_xlabel('time')
ax1.set_ylabel('value')
ax1.xaxis_date()
ax2.bar(self.timeDatas,self.volumeDatas,width=0.75)
ax2.set_title('diff volume')
ax2.grid(True)
......
数据格式如下
#依次为 时间经过date2num转换后的时间,open,high , low及close
736527.0 6030.00 6100.00 5934.00 6080.00
736528.0 6118.00 6071.00 6100.00 6096.00
736529.0 6117.00 6082.00 6115.00 6098.00