Почему FuncAnimation из модуля MatplotLib не отображает график? - PullRequest
0 голосов
/ 08 апреля 2020

Я пытался построить прямые данные (данные, которые продолжают обновляться), используя 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)

Любые рекомендации будут с благодарностью.

1 Ответ

0 голосов
/ 18 апреля 2020

В сообщении <Figure size 576x396 with 0 Axes> указывается место сохранения графика. Удаление plt.show () показывает сюжет.

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