我是Python的新手,我正在尝试绘制一些数据,这些数据是从通过USB连接到串行端口的Arduino获取的。我有一个热敏电阻连接到Arduino,想绘制一个采样温度的历史记录。所以,一个在x轴上不断扩展的图形,在y轴上不断添加新的温度值。在
然而,当我运行这段代码时,我得到一个空白图,它不会做任何其他事情。我怀疑我的问题是没有真正理解FuncAnimation。下面是我的代码。在import serial
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
ser = serial.Serial()
ser.baudrate = 38400
ser.port = 'COM4'
ser.open()
fig, ax = plt.subplots()
line, = ax.plot([])
i = 0
def init():
xdata = []
ydata = []
line.set_data(xdata, ydata)
return line,
def update_data(i)
newpoint = float(ser.readline())
oldxdata, oldydata = line.get_data()
newydata = np.append(oldydata,newpoint)
newxdata = np.append(oldxdata, i)
line.set_data(newxdata, newydata)
i = i + 1
return line,
ani = animation.FuncAnimation(fig, update_data, init_func = init, fargs=i)
plt.show()
我要注意的是,在我运行程序并关闭所有程序后,行。获取数据返回温度点的集合。所以,串行端口正常工作,我只是没有正确地绘制它。谢谢您。在