【发布时间】:2019-10-02 20:23:49
【问题描述】:
简而言之,我试图找到一种更快的方法来绘制通过串行输入传来的实时数据。数据看起来像一个坐标 (x,y),每秒大约有 40 个。流将数据存储在一个数组中,使用 x 作为索引并将 y 设置为它的值。这部分正在穿线。虽然流可以立即读取数据,但 pyqtgraph 库无法跟上这个速度。
这是我绘制数据的代码部分。距离和 theta 变量是具有 6400 个索引的数组。它们已被转换为极值并在每次迭代中绘制。我在那里添加了延迟只是为了帮助保持实时,尽管这只是一个临时解决方案。
while True:
x = distances * np.cos(theta)
y = distances * np.sin(theta)
plot.plot(x, y, pen=None, symbol='o', clear=True)
pg.QtGui.QApplication.processEvents()
#sleep(0.025)
虽然它按我预期的方式运行,但它无法从串行输入中绘制最新数据。与最近的读取相比,它很容易落后几秒钟,可能是因为它无法每 1/40 秒绘制 6400 个点。我想知道是否有办法只更新 1 个点,而不必每次在 pyqtgraph 中重新绘制整个散点图。
也许可以根据点进行绘图,但如果是这样,有没有办法跟踪每个单独的点?不应该有任何点共享相同的角度值并且具有不同的距离,并且应该基本上覆盖它。
我还想知道是否还有其他图形动画库可能是值得考虑的解决方案。
这就是它的样子,如果你想知道的话:
【问题讨论】:
标签: python performance pyqtgraph graphing