pyqtgraph实现实时刷新的直方图
以下是一个使用pyqtgraph实现实时刷新的直方图的示例代码:
import pyqtgraph as pg
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout
import numpy as np
import random
class Histogram(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
# 创建图形视图和布局
self.view = pg.GraphicsView()
self.layout = QVBoxLayout(self)
self.layout.addWidget(self.view)
# 创建直方图项并添加到图形视图中
self.hist = pg.HistogramLUTItem()
self.view.addItem(self.hist)
# 设置图形视图坐标轴标签和范围
self.hist.setImageItem(self.view.imageItem)
self.hist.setLevels(0, 255)
self.hist.gradient.loadPreset('viridis')
self.view.setLabel('left', 'Counts')
self.view.setLabel('bottom', 'Value')
self.view.setRange(QtCore.QRectF(0, 0, 256, 1000))
# 创建定时器并连接到更新函数
self.timer = pg.QtCore.QTimer()
self.timer.timeout.connect(self.update)
def start(self):
# 启动定时器
self.timer.start(50)
def stop(self):
# 停止定时器
self.timer.stop()
def update(self):
# 生成随机数据并更新直方图
data = np.random.normal(size=1000)
self.hist.setData(data)
if __name__ == '__main__':
app = QApplication([])
hist = Histogram()
hist.show()
hist.start()
app.exec_()
这个示例代码创建了一个Histogram类,它继承自QWidget类,并包含一个pyqtgraph的HistogramLUTItem,可以用于实时刷新的直方图。在初始化UI时,创建了一个图形视图和布局,并将直方图项添加到图形视图中。然后设置了坐标轴标签和范围,并创建了一个定时器,连接到更新函数。在更新函数中,生成随机数据并将其传递给直方图项的setData方法,从而更新直方图。最后,启动了应用程序并运行
原文地址: http://www.cveoy.top/t/topic/hfWs 著作权归作者所有。请勿转载和采集!