我希望使用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''