Python 更新pyqtgraph的最佳方法?
我正在开发一个应用程序来收集和显示实验数据,并控制几个设备。我正在用一个计时器进行绘图,该计时器从几个阵列中提取数据,这些阵列由负责数据收集的其他QTimer连续填充 在以低于或等于每秒1点的速度采集和打印数小时后,打印速度变得非常慢,我不认为这是因为内存不足(8字节x 12小时x 3600个测量值/小时x 5个信号~1.6 MB,我至少有2GB的RAM)因此,我认为在重新绘制和清除信号方面可能会有延迟,这也是每秒都会发生的 目前我正在使用:Python 更新pyqtgraph的最佳方法?,python,plot,pyqt5,pyqtgraph,Python,Plot,Pyqt5,Pyqtgraph,我正在开发一个应用程序来收集和显示实验数据,并控制几个设备。我正在用一个计时器进行绘图,该计时器从几个阵列中提取数据,这些阵列由负责数据收集的其他QTimer连续填充 在以低于或等于每秒1点的速度采集和打印数小时后,打印速度变得非常慢,我不认为这是因为内存不足(8字节x 12小时x 3600个测量值/小时x 5个信号~1.6 MB,我至少有2GB的RAM)因此,我认为在重新绘制和清除信号方面可能会有延迟,这也是每秒都会发生的 目前我正在使用: PlotItem.plot(x, y, clear=
PlotItem.plot(x, y, clear=True)
更新我的情节。有更好的方法吗?一些函数可以在不报告整个事件的情况下向绘图中添加数据点。我已经说过,我将继续尝试:
PlotItem.plot(x[-2:-1], y[-2:-1], clear=False)
但这可能有点复杂,因为我必须区分新旧数据。有人有更优雅的解决方案吗?根据我的经验,在100000点左右,绘图速度明显变慢,因此,使用5个12*3600点的绘图,就可以达到这一点 您不能将数据点增量添加到图形中,因为这样线是不连续的;您每次都必须回复每个数据点。但是,如我的回答所述,使用
setData
方法可以更有效地实现这一点
此外,禁用轴自动范围也会有很大帮助
最后,我注意到,如果将抗锯齿与大于1.0的线宽一起使用,打印速度会非常慢。感谢提供的提示,它们非常有用。我会接受答案。