Я пытался построить прямые данные (данные, которые продолжают обновляться), используя FuncAnimation из модуля MatplotLib. Когда я запускаю программу, график не отображается. Программа не выдает никаких ошибок, но при запуске программы выдает следующее сообщение: «Размер рисунка 576x396 с 0 осями»
Вот мой код для построения прямых данных:
import matplotlib.pyplot as plt
import pandas as pd
from matplotlib.animation import FuncAnimation
%matplotlib inline
plt.style.use('seaborn')
def animate(i):
df = pd.read_csv('data2.csv')
x = df['x_value']
y1 = df['total1']
y2 = df['total2']
plt.cla()
plt.plot(x, y1, label='Line1')
plt.plot(x, y2, label = 'Line2')
plt.legend(loc='upper left')
plt.tight_layout()
ani = FuncAnimation(plt.gcf(), animate, interval=1000)
plt.tight_layout()
plt.show()
Вот CSV-файл, который я создал для программы:
import random
import csv
import time
import pandas as pd
x_value = 0
total1 = 10000
total2 = 10000
fieldnames = ['x_value','total1','total2']
with open('data2.csv', 'w') as csv_file:
csv_writer = csv.DictWriter(csv_file, fieldnames=fieldnames)
csv_writer.writeheader()
while True:
with open('data2.csv','a') as csv_file:
csv_writer = csv.DictWriter(csv_file, fieldnames=fieldnames)
info = {
'x_value': x_value,
'total1' : total1,
'total2' : total2
}
csv_writer.writerow(info)
print(x_value, total1, total2)
x_value += 1
total1 = total1 + random.randint(-6,8)
total2 = total2 + random.randint(9,11)
time.sleep(1)
Любые рекомендации будут с благодарностью.