Проблема построения динамического графика 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 не увидел.


Ответы (0 шт):