我希望使用Matplotlib创建一条实时打印线,而不是一系列点
该程序运行良好,但现场绘图显示了一系列点。我宁愿看到一条连接点的线,或者只是一条线。下面是我已经尝试过但不起作用的方法我希望使用Matplotlib创建一条实时打印线,而不是一系列点,matplotlib,Matplotlib,该程序运行良好,但现场绘图显示了一系列点。我宁愿看到一条连接点的线,或者只是一条线。下面是我已经尝试过但不起作用的方法 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) sy
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()
我想您需要跟踪上一点,以便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“”提供传递给plot函数的字符串列表。您可能希望将它们转换为数字:p=[floati for i in line.split''