我正在使用串行数据创建多个图形。我正在使用split()函数分离串行数据,并使用此代码将每个数据分配给不同的变量。它可以正常工作。但是,有时在程序启动时从串行端口接收的数据数量较少。它会产生索引错误。我如何告诉我的代码等待所有串行端口数据。例如,从串行端口发送的数据数量为六。等到所有六个数据都收到为止,然后使用这些数据在一个循环中绘制不同的图。我需要将每个图保存为不同的名称。
am使用python 3.5,为graph.i使用matplotlib试图保存单个图。
import matplotlib.pyplot as plt
import numpy as np
import time
import serial
plt.ion()
s = serial.Serial('/dev/ttyACM0', 9600)
def graph():
ser = s.readline()
i = ser.split()
q = (int(i[0]))
w = (int(i[1]))
e = (int(i[2]))
r = (int(i[3]))
t = (int(i[4]))
u = (int(i[5]))
print(q,w,e,r,t,u)
print(i)
y =(q,w,e,r,t,u)
x=(1,2,3,4,5,6)
plt.ylabel("pressure(psi)")
plt.xlabel('Number of Sensors')
plt.plot(x,y)
plt.draw()
plt.savefig('books_read.png')
plt.pause(1)
plt.clf()
while True:
graph()
我希望程序在第一时间等待所有数据,并保存每个图形。