python - PyQtGraph PlotWidget : how to force each draw (changing range) for "real time" plotting

标签 python plot real-time pyqtgraph

我正在尝试使 PlotWidget 移动(从左到右)非常快,就像它是心电图一样。这是我想要的示例(除了他使用 PyQwt(这与我的项目不兼容,因为我使用 PySide(而不是 PyQt),而且我也希望 X 轴从左向右移动):

enter image description here

但是,我不知道该怎么做。我可以绘制抓取图,我可以使用以下方法让它从左向右移动:

 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/

相关文章:

python - pygame - 向下滚动页面

python - 遍历多维列表

java - JFreeChart:将图例嵌入箱线图中

laravel-5 - RethinkDB、Laravel 和 Ratchet 如何协同工作?

azure - 语音和视频通话是否具有 JavaScript 事件监听器(例如 Azure 通信服务中的聊天事件监听器)?

python - DEAP 中的 PyGame/PyMunk 评估存在问题

python - 如何在某个位置添加字符串?

python - **凹**非网格数据的matplotlib轮廓/轮廓

r - 绘图中的标签线

c - 与许多实时设备保持连接