【问题标题】:Best way to update a pyqtgraph?更新pyqtgraph的最佳方法?
【发布时间】:2021-03-24 13:48:54
【问题描述】:

我正在开发一个应用程序来收集和显示实验数据,并控制多个设备。我正在使用计时器进行绘图,该计时器从几个数组中提取数据,这些数组由负责数据收集的其他 QTimer 连续填充。

在以低于或等于每秒 1 点的速度收集和绘制几个小时后,绘制变得非常缓慢,我认为这不是因为内存不足(8 字节 x 12 小时 x 3600 次测量/小时 x 5 个信号 ~ 1.6 MB 并且我至少有 2GB 的 RAM)所以我认为重新绘制和清除信号可能会有延迟,这种情况也每秒发生一次。

目前我正在使用:

PlotItem.plot(x, y, clear=True) 

更新我的情节。有一个更好的方法吗?一些功能可以将数据点添加到绘图而不重新报告整个事情。话虽如此,我要继续尝试:

PlotItem.plot(x[-2:-1], y[-2:-1], clear=False) 

但这可能有点复杂,因为我必须区分新旧数据。有没有人有更优雅的解决方案?

【问题讨论】:

    标签: python plot pyqt5 pyqtgraph


    【解决方案1】:

    根据我的经验,绘图在大约 100000 点时变得明显缓慢,因此使用 5 个 12*3600 点的绘图可以达到这一点。

    您不能以增量方式将数据点添加到图表中,因为这样会导致线条不连续;您每次都必须重新绘制每个数据点。但是,可以通过使用 setData 方法更有效地执行此操作,正如我的回答 here 所解释的那样。

    同时禁用坐标区自动范围也会有很大帮助。

    最后,我注意到如果同时使用抗锯齿和大于 1.0 的线宽,绘图会变得非常缓慢

    【讨论】:

    • 感谢您的提示,它们很有帮助。我会接受答案。
    猜你喜欢
    • 1970-01-01
    • 2016-11-20
    • 2021-03-07
    • 2013-12-20
    • 1970-01-01
    • 2020-12-09
    • 1970-01-01
    • 1970-01-01
    • 2012-11-18
    相关资源
    最近更新 更多