如何使用Python实时绘制每秒15000点连续读取的数据?

时间:2016-06-07 17:19:48

标签: python matplotlib plot

我编写了一个Python脚本,每秒读取和存储15000个数据点(电压读数),因为它们是从连接到函数发生器的LabJack U3-HV流式传输的。我正在使用Python的多处理程序在一个过程中以15000 Hz的频率读取LabJack的电压数据,将数据通过管道传递到第二个过程,在那里将数据存储在列表中,并且绘图实时进行。

当试图从LabJack流式传输电压数据时,我试图从函数发生器中实时绘制电压正弦波(电压与时间)。我还需要同时实时绘制这些数据的傅里叶变换。

时间列表是通过参考电压读数发生的1 /速率创建的。无需实时绘图,脚本可以精确存储电压和时间数据,最高可达每秒15000个样本。当我尝试使用Matplotlib实时绘图时,问题就出现了。

我目前正在使用带有drawow()函数的Matplotlib来实时绘制和更新绘图。这个过程有效,但实验中使用的速度太慢而无法实际使用。

有人能建议最好的方法(其他绘图库,更好地使用Matplotlib等)来绘制这个电压正弦波(电压与时间)和傅里叶变换的实时准确度吗?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我想我可以给你两个建议:

- 如果可能的话,减少要显示的点数(它肯定会减少问题的要求),例如每三个点使用一个点(在我的应用程序中,我用来在第二个点显示6000点) )。

- 使用动画库,它非常用户友好,并且在脚本中实现起来并不困难。您可以使用此页面作为参考,我使用它一次来解决类似的问题:

https://pythonprogramming.net/python-matplotlib-live-updating-graphs/