此程序工作正常,但实时情节显示一系列点。我宁愿看到一条连接点或简单线条的线。在下面,#是我已经尝试过的,但是没有用。
import time, serial, sys
from time import sleep
import numpy as np
import matplotlib.pyplot as plt
serPort = 'COM5'
dataFile=open("loggedData.dat", "w");
ser =serial.Serial(serPort, 9600)
sys.stdout.flush()
#plt.setp(lines,'color','r','linewidth',2.0)
fig=plt.figure()
plt.ion()
plt.show()
while True:
line = ser.readline()
print line;
p=line.split(' ')
dataFile.write(line)
#plt.setp(line,'color','r','linewidth',2.0)
#plt.plot((p[0]), (p[1]), 'drawstyle', '-')
#plt.plot((p[0]), (p[1]), '-')
plt.plot((p[0]), (p[1]), 'ro')
plt.draw()
答案 0 :(得分:0)
我猜你需要跟踪前一点,以便Matplotlib可以在两点之间画一条线。
prev = None
while True:
line = ser.readline()
print line;
p=line.split(' ')
dataFile.write(line)
if prev is not None:
plt.plot((prev[0], p[0]), (prev[1], p[1]), 'r') # draw the line
plt.plot((p[0]), (p[1]), 'ro') # draw the dot
prev = (p[0], p[1])
plt.draw()
顺便说一下,我不确定你的代码是否真的在做你想要的。
p=line.split(' ')
为您提供传递给绘图函数的字符串列表。您可能希望将它们转换为数字:p = [float(i) for i in line.split(' ')
。