Создать обновляемый сюжет в python - PullRequest
0 голосов
/ 13 февраля 2020

У меня есть датчик, и мне нужно наносить данные в режиме реального времени, используя Python. У меня есть поток, который заполняет буфер, содержащий данные для показа.

data = deque([], maxlen=512)  #Sample raw received

fig = plt.figure()
ax = plt.axes(xlim=(0, 50), ylim=(0, 4000))
ax.set_autoscaley_on(False)

#Buffered arays to plot, max lenght 50
x = [0]
y = [0]
line, = ax.plot([], [], lw=1)

Я использую matplotlib.animation, и это моя "одушевленная" функция

def animate(i,x,y):

    if data:
        y.append(data.pop()) #consume a sample
    else:
        y.append(0) #padd

    x.append(x[-1]+1) #sample name

    # Limit x and y lists to 50 items
    x = x[-50:]
    y = y[-50:]

    ax.clear()
    ax.plot(x, y)

    line.set_data(x, y)
    return line,

Я показываю рисунок с :

anim = animation.FuncAnimation(fig, animate, fargs=(x, y),
                                   frames=200, interval=10, blit=True)
plt.show()

Я могу достичь своей цели, установив blit=False и удалив return line, в функции анимации, но Python переназначит все, и это очень и очень медленно. Мне нужно только обновить новые данные. Если я установлю blit=True и использую код return line,, я не увижу сюжет движущимся.

Я много искал в Интернете, но, похоже, ничего не работает так, как мне нужно. Как я могу очень быстро обновить свой сюжет?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...