Проблема построения динамического графика Python
Есть csv файл, туда примерно каждую минуту записывается значение, по которому необходимо строить график. Сейчас использую модуль pyplot, но получается дико костыльно, потому что как я понял функция animate() не предназначена конкретно для этой задачи, получается только каждый раз очищать полотно и отрисовывать заново график.
По итогу все фризит и очень не хватает интерактивности (много входных данных). Пытался сделать так, но безуспешно:
import matplotlib.pyplot as plt
import matplotlib.animation as animation
import csv
import time
from tkinter import *
name = '123.csv'
def reader():
y = []
with open(name, mode = 'r', encoding = 'utf-8') as file:
csv_file = csv.reader(file, delimiter = ';')
for row in csv_file:
y.append(int(row[0]))
return y
x = []
y = reader()
x = list(range(1, len(y) + 1))
fig, ax = plt.subplots()
[line] = ax.plot(x, y)
def update(dy):
x.append(x[-1] + 1) # update data
line.set_xdata(x) # update plot data
line.set_ydata(y + dy)
ax.relim() # update axes limits
ax.autoscale_view(True, True, True)
return line, ax
def data_gen():
while True:
y = reader()
yield y[-1]
time.sleep(5)
ani = animation.FuncAnimation(fig, update, data_gen)
plt.show()
Смотрел в сторону plotly, очень интерактивная штука, но информации по dynamic charts не увидел.