使用PyQtGraph绘制股票行情K线图

350 篇文章 ¥29.90 ¥99.00
本文介绍如何使用Python的PyQtGraph库绘制股票K线图,展示开盘价、收盘价、最高价和最低价。首先安装PyQtGraph,接着创建自定义窗口类,加载数据并更新K线图,最后在主函数中运行应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在本文中,我们将使用Python编程语言和PyQtGraph库来绘制股票行情的K线图。K线图是一种常用的股票行情图表,可以显示股票的开盘价、收盘价、最高价和最低价等信息,以便于分析股票的走势。

首先,我们需要安装PyQtGraph库。可以使用以下命令通过pip安装:

pip install PyQtGraph

安装完成后,我们可以开始编写代码。首先,导入所需的库:

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
import pyqtgraph as pg
from pyqtgraph import QtCore

接下来,我们创建一个继承自QMainWindow的自定义窗口类,用于显示K线图:


                
### 使用PyQtGraph绘制K线图 为了利用PyQtGraph的强大性能来绘制股票行情中的K线图,可以按照如下方法构建程序。首先需要安装必要的库: ```bash pip install pyqtgraph numpy pandas ``` 导入所需的模块并准备数据源。这里假设有一个CSV文件`stock_data.csv`包含了日期、开盘价、最高价、最低价和收盘价的信息。 ```python import sys from datetime import datetime import pandas as pd import pyqtgraph as pg from pyqtgraph.Qt import QtGui, QtCore import numpy as np class CandlestickItem(pg.GraphicsObject): def __init__(self, data): """data must have fields: time, open, close, min, max""" pg.GraphicsObject.__init__(self) self.data = data self.generatePicture() def generatePicture(self): self.picture = QtGui.QPicture() p = QtGui.QPainter(self.picture) w = (self.data[1][0] - self.data[0][0]) / 3. for (t, open, close, low, high) in self.data: p.setPen(pg.mkPen('w')) if close >= open: p.setBrush(pg.mkBrush('g')) # green color when closing price is higher than opening else: p.setBrush(pg.mkBrush('r')) # red color otherwise p.drawLine(QtCore.QPointF(t, low), QtCore.QPointF(t, high)) p.drawRect(QtCore.QRectF(t-w, open, w*2, close-open)) p.end() def main(): app = QtGui.QApplication([]) df = pd.read_csv('stock_data.csv') # Convert date strings to numbers using matplotlib's date2num function or similar method dates = [datetime.strptime(d, '%Y-%m-%d').timestamp() for d in df['date']] data_list = list(zip(dates, df.open.values, df.close.values, df.low.values, df.high.values))[:] item = CandlestickItem(data=data_list) plt = pg.plot(title="Candlestick Chart with PyQtGraph") plt.addItem(item) if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'): QtGui.QApplication.instance().exec_() if __name__ == '__main__': main() ``` 这段代码定义了一个自定义图形项`CandlestickItem`用于表示单根蜡烛棒,并通过读取CSV文件加载股价数据,最后调用`pg.plot()`函数创建窗口并将蜡烛图表添加到该窗口中[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值