引言
pyqtgraph是Python平台上功能强大的2D/3D图形库,针对matplotlib库,内部实现方式为高速计算的numpy信号处理库和Qt的GraphicsView关于pyqtgraph绘图库,一些文章已经介绍了该库的基本使用方法,包括如何连续更新波形图、如何逐渐更新波形图、如何显示多条曲线以及如何自定义坐标轴文字信息。 详情请参照上一篇文章。
这次我将向大家介绍如何使用这个库绘制股票的k线图。
对
K线图介绍
股票交易者来说,kline图表是揭示股票在一定时期内走势的最基本的图形工具。 kline分阳线和阴线,阳线和阴线包含开盘价、收盘价、最高值和最低价。 一般的kline如下图所示。
收盘价大于开盘价时称为阳线,图形上一般用红色表示,相反收盘价低于开盘价时称为阴线,图形上一般用绿色表示。 因为它的形状像蜡烛,所以kline图有时也被称为蜡烛图。
针对
实例说明
某只股票,模拟一定期间内每天的开盘价、收盘价、最高值、最低价的数据,绘制其k线图的趋势。 执行界面如下图所示。
上图描绘了某股7天的交易信息。 在此图中,可以清晰地看到每天的起始值、收盘价、最高值、最低值的数据信息。 从颜色也可以看出开盘价和收盘价的大小关系。
编程思路
是pyqtgraph绘图库,其内部实现方式采用Qt的图形视图框架结构,各小部件为QGraphicitem类继承的图形项目,因此显示kline地图自定义kline部件CandlestickItem后,将其添加到主视图窗口,以完全显示股票的kline信息。
另外,其k线图的横坐标一般为时间,需要单独定制横坐标的信息。
部件类CandlestickItem的实现
K线图零部件CandlestickItem类的实现代码如下图所示。
主要代码解释如下。
)1)传递到第18-21行、类的初始化代码和data参数中。 这个参数包含每天的股票数据,其类型为列表,各要素为元组,包含股票的time、open、close、min、max等信息。
)2)第23-31行生成k线图的图像picture,用初始化函数调用一次。
)3)在第33-34行,在绘制函数上绘制k线图图像的柱状图信息。
4 )在第36-37行中,在boundingRect函数中,基于图像的图片的边界尺寸定义该部件的尺寸信息。
完整的测试代码
调用上面的部件类,完整的测试代码如下图所示。
主要代码解释如下。
(1)第15行,编制APP实例APP。
)2)第39-47行生成模拟的每日股票数据,包括股票的time、open、close、min、max等信息。
(3)第48行,定义k线图零部件实例item。
(4)定义第50-52行、横向坐标轴实例myAxis,将坐标轴的数值信息转换为日期信息。
5 )在第54-56行,创建图形显示窗口win,设定窗口标题、窗口大小等属性。
6 )第58-62行,在win中添加绘图对象p,将坐标轴设置为myAxis,添加kline部件实例item,设置x、y轴标题、图形标题等信息。
(7)在第64行中,使用app.exec_ ) )函数执行实例,进入消息吉鲁组。
运行上面的代码时,将显示本文中介绍的执行界面图。
总结
从这个例子可以看出,在Python上使用pyqtgraph绘图库绘制股票的k线图比较容易。 本例中可以学习的pyqtgraph绘图库的编程知识点如下1 )如何定制绘图零件?
(2)如何定制坐标轴信息?
如果你觉得这篇文章对你有帮助的话,关注收藏进行夸奖吧。