有一个不断生成的数据,随着时间将该这个数据用pyqtgragh绘制UI界面
时间: 2023-07-15 17:13:13 浏览: 98
Python数据可视化:时间序列图表可视化
5星 · 资源好评率100%
可以使用 PyQtGraph 库绘制实时数据的 UI 界面。以下是一个示例代码,可以将不断生成的数据以实时动态的方式展示在 PyQtGraph 的 PlotWidget 中:
```python
from pyqtgraph.Qt import QtGui, QtCore
import pyqtgraph as pg
import numpy as np
# 创建一个 QApplication 实例
app = QtGui.QApplication([])
# 创建一个 PlotWidget 实例,并设置窗口标题和横纵坐标标签
pw = pg.PlotWidget(title="Real-time Data Plot")
pw.setLabel('left', 'Value')
pw.setLabel('bottom', 'Time')
# 创建一个曲线实例
curve = pw.plot()
# 创建一个数组,用于存储数据
data = np.zeros((1000,2))
ptr = 0
# 定义一个函数,用于更新数据
def update():
global data, ptr
# 生成一组新的数据
newData = np.array([[ptr, np.random.randint(0, 100)], [ptr+1, np.random.randint(0, 100)]])
# 将新数据添加到数据数组中
data[ptr:ptr+2, :] = newData
ptr += 2
# 更新曲线数据
curve.setData(data[:ptr, :])
# 创建一个定时器,每 50 毫秒触发一次更新函数
timer = QtCore.QTimer()
timer.timeout.connect(update)
timer.start(50)
# 显示窗口
pw.show()
# 进入 Qt 事件循环
app.exec_()
```
在上述代码中,我们使用了 QTimer 类来定时触发更新函数,以模拟不断生成的数据。在更新函数中,我们生成了一组新的随机数据,将其添加到数据数组中,并使用 setData() 方法更新曲线数据。最后,我们使用 exec_() 方法进入 Qt 的事件循环,以保证窗口一直处于运行状态。
阅读全文