Python+pyqtgraph:跟我学如何绘制股票K线图

首页 > 科技 > 正文 2021-06-04

发表自话题:怎么画k线图

引言

py是Python平台上一种功能强大的2D/3D绘图库,相对于matplotlib库,由于其在内部实现方式上,使用了高速计算的numpy信号处理库以及Qt的GraphicsView框架,因此它在大数据量的处理及快速显示方面有着天然的优势,非常适合于需要快速绘图更新、视频或实时交互性的操作场合,在数学、科学和工程领域都有着广泛的应用。

对于py绘图库,前面已经写了几篇文章介绍了该库的基本使用方法,包括如何连续刷新波形图、如何逐点刷新波形图、如何显示多幅多条曲线及如何自定义坐标轴字符信息等内容,详细请参考前面的文章。

这次给大家介绍一下如何使用该库绘制股票k线图。

K线图介绍

对于股票交易者来讲,K线图是弄清股票一段时间走势的一种最基本的图形工具,K线分为阳线和阴线,阳线和阴线都包含了开盘价、收盘价、最高价和最低价,一般K线如下图所示:

当收盘价大于开盘价时,称为阳线,在图形上一般用红色表示,反之,当收盘价低于开盘价时,称为阴线,在图形上一般用绿色表示。由于其形状颇似一根根蜡烛,K线图有时也叫做蜡烛图。

实例说明

对于某股票,仿真一段时间内每天的开盘价、收盘价、最高价和最低价数据,绘制其K线图趋势。其运行界面如下图所示:

在上图中,绘制了某股票7天的交易信息,通过该图,可以清晰看到每天的开盘价、收盘价、最高价和最低价数据信息,通过颜色也可以看出开盘价及收盘价的大小关系。

编程思路

在py绘图库中,其内部实现方式上采用了Qt的图形视图框架结构,每个小部件都是一个继承于类的图形项,因此,可以自定义一个显示K线图的小部件类CandlestickItem,在类中重新实现两个方法函数“paint”和“boundingRect”即可。

K线图部件CandlestickItem定制完成后,将其添加到主显示窗口中,进而完整显示股票的K线图信息。

另外,其K线图的横坐标一般为时间,需要单独自定义横坐标的信息。

部件类CandlestickItem的实现

K线图部件CandlestickItem类的实现代码如下图所示:

其主要代码解释如下:

(1)第18-21行,类的初始化代码,传入data参数,该参数包含了每天的股票数据,其类型为一列表,其每个元素为一元组,包含了股票的time、open、close、min、max等信息。

(2)第23-31行,生成K线图的图片picture,在初始化函数中调用一次。

(3)第33-34行,在paint函数中绘制K线图图片picture信息。

(4)第36-37行,在boundingRect函数中根据图片picture的边界大小定义该部件的大小信息。

完整的测试代码

调用上面的部件类,完整测试代码如下图所示:

其主要代码解释如下:

(1)第15行,创建应用程序实例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,添加K线图部件实例item,并设置X、Y轴标题、图形标题等信息。

(7)第64行,使用app.exec_()函数运行实例,进入消息循环。

运行上面代码后,就会出现本文开始的提到的运行界面图。

总结

通过本例可以看出,在Python中使用py绘图库绘制股票K线图,相对来说还是比较简单的。通过本例可以学到的关于py绘图库编程的知识点包括:

(1)如何自定义绘图部件。

(2)如何自定义坐标轴信息。

如果你觉得这篇文章对你有用的话,关注+收藏+点赞吧。

标签组:[股票] [k线图

上一篇怎样在股票k线图是添加划线和自动连线功能

下一篇K线图如何对接第3方数据11

相关阅读

相同话题文章

推荐内容

热门阅读