pyqt的pyqtgragh实现一个实时更新的1000个数据组列表绘制横坐标随着更新的曲线
时间: 2023-11-24 14:12:22 浏览: 32
好的,您可以参考以下代码实现:
```python
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5.QtCore import QTimer
import pyqtgraph as pg
import numpy as np
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
# 创建一个pyqtgraph的窗口
self.graphWidget = pg.PlotWidget()
self.setCentralWidget(self.graphWidget)
# 设置x、y轴范围
self.graphWidget.setXRange(0, 1000)
self.graphWidget.setYRange(0, 10)
# 创建一个空的曲线
self.curve = self.graphWidget.plot()
# 定时器,每隔1毫秒更新一次曲线
self.timer = QTimer()
self.timer.timeout.connect(self.update)
self.timer.start(1)
# 初始化数据
self.data = np.zeros(1000)
# 初始化x轴数据
self.xData = np.linspace(0, 1000, 1000)
def update(self):
# 生成新的数据
newData = np.zeros(1000)
newData[0] = np.random.normal(5, 2)
newData[1:] = self.data[:-1]
# 更新数据
self.data = newData
# 更新曲线
self.curve.setData(self.xData, self.data)
if __name__ == '__main__':
app = QApplication(sys.argv)
mainWindow = MainWindow()
mainWindow.show()
sys.exit(app.exec_())
```
这段代码实现了一个pyqtgraph窗口,每隔1毫秒更新一次曲线。其中,数据列表中只有第一个数据是随机生成的,其他数据都是前一个数据列表的倒数第二个数据开始复制过来的。同时,x轴的数据也被初始化为0到1000的线性分布,用于绘制横坐标。您可以根据自己的需求修改生成数据的方式。
阅读全文