以下是一个使用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方法,从而更新直方图。最后,启动了应用程序并运行

pyqtgraph实现实时刷新的直方图

原文地址: http://www.cveoy.top/t/topic/hfWs 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录