Как создать живой граф с помощью matplotlib, который постоянно строит графики над собой? - PullRequest
0 голосов
/ 04 июня 2019

Я использую LabJack U3-LV, чтобы захватить аналоговый вход, и я строю графики с помощью matplotlib.Мой текущий график боковой прокрутки работает прекрасно.При изменении аналогового входа график обновляется быстро и точно.Я хотел бы изменить свой текущий график так, чтобы ось X и ось Y были статическими, а график просто очищался и повторно отображал графики по тем же осям.

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

import u3
import matplotlib.pyplot as plt 
import numpy as np 
import time
import matplotlib.animation as animation

# Function to collect Analog input from device
def getFIO(num):
    ainFIO = lj.getAIN(num)
    print(ainFIO)
    return ainFIO

x_len = 200
y_range = [0, 2.5]

# Create figure for plotting
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
xs = list(range(0,200))
ys = [0] * x_len
ax.set_ylim(y_range)

# Initialize communication with U3-LV
lj = u3.U3()

line, = ax.plot(xs, ys)

plt.title("Voltage over Time")
plt.ylabel("Voltage")
plt.xlabel("Time")

def animate(i, ys):
    voltage = getFIO(1)
    ys.append(voltage)
    ys = ys[-x_len:]
    line.set_ydata(ys) 
    return line,

ani = animation.FuncAnimation(fig, 
    animate, 
    fargs=(ys,), 
    interval=10,
    blit=True)

plt.show()

Заранее спасибо.

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