Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 更新pyqtgraph的最佳方法?_Python_Plot_Pyqt5_Pyqtgraph - Fatal编程技术网

Python 更新pyqtgraph的最佳方法?

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=

我正在开发一个应用程序来收集和显示实验数据,并控制几个设备。我正在用一个计时器进行绘图,该计时器从几个阵列中提取数据,这些阵列由负责数据收集的其他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) 

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

根据我的经验,在100000点左右,绘图速度明显变慢,因此,使用5个12*3600点的绘图,就可以达到这一点

您不能将数据点增量添加到图形中,因为这样线是不连续的;您每次都必须回复每个数据点。但是,如我的回答所述,使用
setData
方法可以更有效地实现这一点

此外,禁用轴自动范围也会有很大帮助


最后,我注意到,如果将抗锯齿与大于1.0的线宽一起使用,打印速度会非常慢。感谢提供的提示,它们非常有用。我会接受答案。