PyQtGraph PlotWidget:如何强制每次绘制(改变范围)进行“实时”绘图
我想让一个绘图小部件快速移动(从左到右),就像心电图一样。这里有个我想要的例子(不过他用的是PyQwt,这和我的项目不兼容,因为我用的是PySide而不是PyQt,而且我还想让X轴也从左到右移动):
但是,我不知道该怎么做。我可以绘制图形,我可以用以下方法让它从左到右移动:
myPlotWidget.setXRange(0, 100)
然后
myPlotWidget.setXRange(1, 101)
这让它看起来像是从左到右移动了(移动了1个单位),但我不知道怎么让它看起来更流畅和自动。我试着做了一个循环,像这样:
for i in range(1000):
myPlotWidget.setXRange(10+i, 100+i, update=True)
但是在循环过程中,图形并没有更新……图形只有在循环结束后才更新,所以我看不到它“从左到右移动”,我只能看到最终的结果。
有人能帮我吗?有没有办法让我强制在循环的1000次中重绘图形?
我最开始以为计算速度太快了,所以我试了这个
for i in range(1000):
myPlotWidget.setXRange(10+i, 100+i, update=True)
time.sleep
但当然,这并没有奏效。
非常感谢你的帮助!
1 个回答
-1
在循环的最后,当它被更新时,你会看到类似 myPlotWidget.update()
或 myPlotWidget.canvas.draw()
这样的代码,对吧?
只需把这个代码放到 for 循环里面。不过,如果你要绘制的数据量很大,这样做会变得很慢。