简而言之,我正在尝试找到一种更快的方法来绘制通过串行输入传输的实时数据。该数据看起来像一个坐标(x,y),每秒钟约有40个。流将使用x作为索引并将y设置为其值将数据存储在数组中。这部分正在进行线程处理。虽然流可以立即读取数据,但pyqtgraph库无法跟上这个速度。
下面是我绘制数据的代码部分。distances和theta变量是具有6400个索引的数组。它们已被转换为极坐标值,并在每次迭代中绘制。我在那里添加了一个延迟,只是为了帮助保持实时性,尽管这只是一个临时解决方案。
虽然它的运行方式符合我的预期,但无法绘制串口输入的最新数据。它距离最近的读数可能会有几秒钟的延迟,这可能是因为它无法在每1/40秒内绘制6400个点。我想知道是否有一种方法可以仅更新一个点,而不必每次重新绘制整个散点图。
可能可以基于点进行绘制,但如果这样做,是否有一种方法来跟踪每个单独的点?不应该存在具有相同角度值但具有不同距离的点,并且应该覆盖它。
我还想知道是否有其他动画图形库可供选择,这可能是一个值得考虑的解决方案。
如果你想知道它是什么样子的,就像这样:
下面是我绘制数据的代码部分。distances和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个点。我想知道是否有一种方法可以仅更新一个点,而不必每次重新绘制整个散点图。
可能可以基于点进行绘制,但如果这样做,是否有一种方法来跟踪每个单独的点?不应该存在具有相同角度值但具有不同距离的点,并且应该覆盖它。
我还想知道是否有其他动画图形库可供选择,这可能是一个值得考虑的解决方案。
如果你想知道它是什么样子的,就像这样: