在上一讲的基础上,我们会对金融数据可视化做更进一步的探索。 subplot2grid设置子图网络 上一讲中提到了通过add_subplot来增加子图,这种方法可以设置子图网格和子图在网格中的所在位置。在本讲中,我们会介绍一种更加灵活地设置网格的方法——subplot2grid,该方法可以设置各子图所占的行列数,其基本用法为: subplot2grid(shape, loc, rowspan, colspan, **kwargs) 其中:shape是网格形状,loc是子图所在位置,rowspan是子图所占行数,colspan是子图所占列数 candlestick_ohlc方法绘制K线图 K线图(蜡烛图)是金融市场中常见的图形,在matplotlib中可以通过candlestick_ohlc方法绘制,其基本参数和用法是: candlestick_ohlc(ax, quotes, width=0.2, colorup='k', colordown='r', alpha=1.0) 其中:参数ax为坐标轴,width为bar的宽度,colorup是上涨时显示的颜色,colordown是下跌时显示的颜色。 quotes为包含时间(time)、开盘价(open)、最高价(high)、最低价(low)、收盘价(close)的序列,candlestick_ohlc方法只会读取序列的前5个,因此可以传入任意长度的序列。另外需要注意的是time必须是浮点类型,一般需要用matplotliab中的date2num方法进行格式转换。 带成成交量的K线图绘制 运用上面的知识,我们可以开始K线图的设置了。整个图形分成两个子图,上面的子图是K线,而下面的子图是成交量柱状图。采用subplot2grid设置两个子图的位置:
以上表示K线图占据上面3*4的网格,成交柱状图占下面1*4的网格。 采用candlestick_ohlc和bar方法分别进行画图,根据上一讲的内容对图形的坐标轴进行设置,在此不再重述。在画完图后,我们还需要对图的样式进行调整:
上面的代码中,第一行是隐藏K线图x轴的标签,第二行是隐藏K线图y轴的第一个标签(该标签会与下面的子图有重合),第三行是调整图形的边距并且使得两个子图之间无空隙。 完成上述操作后,就可以得到最终的图形了。 后续的工作 为了让K线图与股票软件中所看的一样,还需要其他许多额外的工作:
以上这些可以作为本讲的练习,大家可以自己动手尝试一下。本次讲解涉及的完整代码如下。 |
|