Я использую 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()
Заранее спасибо.