Python中的实时绘图



我有一个数据流,每秒提供125个浮点值,我想实时绘制它们。目前我的代码如下:

Code to read data from stream
counter = 0
while True:
    counter = counter+1
    data from stream (x values)

当然,在现实中,代码看起来有点复杂,但我认为这会让提供建议变得更容易。

我正在考虑将图形保存为一个文件:

counter=0
a_data=np.zeros(100,float)                   #this is limited to 100 floats
while True:
    counter = counter+1
    bytestring = sock.recv(51)               # this is the stream data
    raw = struct.unpack(pp,bytestring)       # this is the unpacked data
    twentyfive = (raw[25]-15310)*0.0265      # this is the x value
    a_data[counter] = twentyfive
    plt.plot(a_data)
    print(twentyfive)
    plt.savefig('test.png')
    time.sleep(0.01)

问题是数据波动很大,所以太过混乱,没有帮助。图形应向右移动。此外,它还远远不够快。出于这个原因,我曾考虑使用pyqtgraph,但我不知道如何将我的x值(每秒125微伏值)和y值(计数器给出的时间步长)输入到迄今为止在网上找到的任何示例中的pyqtgraph。如有任何帮助,我们将不胜感激。

PyQtGraph在这里是一个很好的选择,实时绘制125个样本/秒应该没有问题。有几种方法可以用于绘制实时滚动数据,实际上PyQtGraph中有一个很好的示例文件显示了这一点:https://github.com/pyqtgraph/pyqtgraph/blob/develop/examples/scrollingPlots.py

安装PyQtGraph:后,您可以在Python解释器中运行此示例

import pyqtgraph.examples
pyqtgraph.examples.run()

并选择"滚动绘图"示例。

相关内容

  • 没有找到相关文章

最新更新