更新pyqtgraph的最佳方法?
Posted
技术标签:
【中文标题】更新pyqtgraph的最佳方法?【英文标题】:Best way to update a 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)
但这可能有点复杂,因为我必须区分新旧数据。有没有人有更优雅的解决方案?
【问题讨论】:
【参考方案1】:根据我的经验,绘图在大约 100000 点时变得明显缓慢,因此使用 5 个 12*3600 点的绘图可以达到这一点。
您不能以增量方式将数据点添加到图表中,因为这样会导致线条不连续;您每次都必须重新绘制每个数据点。但是,可以通过使用 setData
方法更有效地执行此操作,正如我的回答 here 所解释的那样。
同时禁用坐标区自动范围也会有很大帮助。
最后,我注意到如果同时使用抗锯齿和大于 1.0 的线宽,绘图会变得非常缓慢
【讨论】:
感谢您的提示,它们很有帮助。我会接受答案。以上是关于更新pyqtgraph的最佳方法?的主要内容,如果未能解决你的问题,请参考以下文章