尝试在Python

时间:2016-02-10 01:39:46

标签: python python-2.7

我是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()    

我应该注意,在运行程序并关闭所有内容后,line.get_ydata会返回一组温度点。所以,串口工作正常,我只是没有正确绘制图形。谢谢。

0 个答案:

没有答案