pyqtgraph 动态绘图
时间: 2023-10-01 19:03:38 浏览: 91
PyQtGraph 是 Python 中的一个图形库,它提供了丰富的绘图功能,特别是针对实时数据的动态绘图。下面是一个简单的动态绘图示例,它将在不断更新的时间序列中绘制正弦波形:
```python
import numpy as np
import pyqtgraph as pg
from pyqtgraph.Qt import QtGui, QtCore
# 创建一个继承自QtCore.QObject的类,用于处理定时器事件
class Timer(QtCore.QObject):
timeout = QtCore.pyqtSignal()
def start(self, interval):
self.timer = QtCore.QTimer()
self.timer.timeout.connect(self.emit_timeout)
self.timer.start(interval)
def emit_timeout(self):
self.timeout.emit()
# 创建应用程序
app = QtGui.QApplication([])
# 创建一个绘图窗口和一个图形对象
win = pg.GraphicsWindow()
plot = win.addPlot()
# 生成一些随机数据
data = np.random.normal(size=(1000,))
# 设置绘图参数
curve = plot.plot()
plot.enableAutoRange('xy', True)
plot.setTitle('Dynamic Plot')
# 创建一个定时器实例
timer = Timer()
# 定义一个槽函数,用于更新数据和绘图
def update():
global data
data[:-1] = data[1:]
data[-1] = np.random.normal()
curve.setData(data)
# 将定时器的timeout信号连接到update槽函数
timer.timeout.connect(update)
# 开始定时器
timer.start(50) # 50毫秒更新一次
# 运行应用程序
app.exec_()
```
在这个示例中,我们创建了一个 Timer 类,它继承自 QtCore.QObject 类,用于处理定时器事件。我们创建了一个定时器实例,并将其 timeout 信号连接到 update 槽函数。在 update 函数中,我们生成随机数据,更新曲线数据,并使用 setData 函数将其绘制到图形对象上。最后,我们启动定时器,并使用 app.exec_() 运行应用程序。这个示例中的定时器每50毫秒更新一次,因此曲线将以相同的速度更新。
阅读全文