Живое обновление сюжета отстает

Я пытаюсь отобразить эталонные и выходные значения, которые отображаются на последовательном мониторе Arduino в формате (ref, out), и проблема в том, что мой график занимает некоторое время для обновления значений, поэтому я получаю отставание в моем python plot.my код выглядит следующим образом

import serial
import numpy
from matplotlib import pyplot as plt
from drawnow import *

s=serial.Serial('COM3',9600)
ref=[]
out=[]
plt.ion()
cnt=0

def makeFig():
    plt.ylim(0,1023)
    plt.title('PI Controller')
    plt.grid(True)
    plt.ylabel('reference')
    plt.plot(ref,'ro-',label=' ref values')
    plt.legend(loc='upper left')
    plt2=plt.twinx()
    plt.ylim(0,1023)
    plt2.plot(out,'b^-',label='out values')
    plt2.set_ylabel('out values')
    plt2.ticklabel_format(useOffset=False)
    plt2.legend(loc='upper right')
while True:
    while(s.inWaiting()==0):
        pass
    dataString=s.readline()
    dataArray=dataString.split(',')
    r=float(dataArray[0])
    o=float(dataArray[1])
    ref.append(r)
    out.append(o)
    drawnow(makeFig)
    plt.pause(.000001)
    cnt=cnt+1
    if (cnt>50):
        ref.pop(0)
        out.pop(0)

Мой сюжет обновляется, но он запаздывает. Пожалуйста, помогите мне с этим...

0 ответов

Другие вопросы по тегам