我正在尝试使 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
当然没用。
非常感谢您的帮助!
最佳答案
在循环结束时,当它被更新时,你有类似 myPlotWidget.update()
或 myPlotWidget.canvas.draw()
的东西,对吧?
只需将其移动到 for 循环中即可。如果您尝试绘制大量数据,这会变慢。
关于python - PyQtGraph PlotWidget : how to force each draw (changing range) for "real time" plotting,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22796969/