来自串口的Matplotlib实时绘图数据

时间:2019-03-31 01:50:36

标签: python matplotlib

我是Python的新手,我正在尝试使用Matplotlib从PC的串行端口绘制一些数据,这些数据是从外部DVM(数字电压表)获取的,并且数据格式很简单,例如: 10.01 9.97 9.95 10.02 .... 我可以使用Matplotlib制作一些静态图形或图表,但是我不知道如何在实时模式下绘制数据图表。我只希望看到折线图不断更新,则不需要x轴。我已经通过很少的代码(代码中的变量“ v”)获得了串行端口数据。但是,现在如何实时绘制它们呢?我应该使用什么方法?非常感谢。

这是我的代码。

import serial
import time
import matplotlib.pyplot as plt

ser = serial.Serial('/dev/ttyUSB0',115200, timeout=1)
print(ser.name)

count =0
while count < 1000:

ser.write(b'read?\n')
ch = ser.readline()
st = str(ch) 
num = st[3:8]
v = float(num)
print(v)
time.sleep(1)

1 个答案:

答案 0 :(得分:0)

我们如何用静态数据绘制数据?

如果我们有静态数据,我们可以在数学图lib中直接绘制折线图

下面是简单的代码段

import matplotlib.pyplot as plt
x = [2, 4, 6]
y = [1, 3, 5]
plt.plot(x, y)
plt.show()

我们如何用动态/实时数据绘制数据?

  1. 我们必须编写服务才能实时获取数据,这可以在任何平台上编写。该特定服务将帮助您实时获取数据。让我以前面的示例本身为例,其中x和y 实时从休息服务中填充。

  2. 下一步是从服务中获取数据并形成所需的配置轴,然后将其填充为折线图。

注意: 我们还必须考虑数据更新的频率,因此必须根据它触发用于更新的api。

阅读下面的链接以获得更多见解: https://dzone.com/articles/how-to-use-matplotlib-to-display-api-performance-d