Анимация линейных диаграммPython

Программы на Python
Anonymous
Анимация линейных диаграмм

Сообщение Anonymous »

У меня есть следующие данные, вот их часть
[{'Дата': '2017 Q1', 'Саудовская Аравия': 3.5080621303094413, 'Оман': 2.0803722435647836, «Йемен»: 1,9636651338439473, «Израиль»: 3,0247692259733565}, {»Дата»: «2 квартал 2017 г.», «Саудовская Аравия»: 3,03137342597358, «Оман»: 2,2666875108328357, «Йемен» : 2.0820441357351513, 'Израиль': 3.145231552094236}, { «Дата»: «3 квартал 2017 г.», «Саудовская Аравия»: 2.4309916593024394, «Оман»: 2.4635716453158922, «Йемен»: 2.326399413964078, «Израиль»: 2.792350006532546}, «4 квартал 2017 г.», «Саудовская Аравия»: 3.699283062258509, "Оман": 3.1202643793473914, "Йемен": 2.924974137360855, "Израиль": 3.5534406207725384}, {'Дата': '2018 Q1', 'Саудовская Аравия': 5752914561016, «Оман»: 3,7256945856760573, «Йемен»: 3,64807891731718, «Израиль»: 4.3811754907135745}]
За исключением того, что у меня в df установлен индекс «Дата».
Я пытался сделать анимированная линейная диаграмма с использованием следующего:

Код: Выделить всё

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation

file_path= r"C:\Users\Willi\OneDrive\Desktop\Data_for_chart.xlsx"
Title_for_chart = "Middle East inflation"

df = pd.read_excel(file_path)
df = df.T
header = df.iloc[0]
df = df[1:]
df.columns = header
df = df.apply(pd.to_numeric, errors = 'coerce')

#Getting the values so can easily adjust the axis
max_value = df.max().max() + df.max().max()*0.2
min_value = df.min().min() - df.min().min()*0.2

#plotting to see how it would look
dates_vals = list(df.index)
plt.plot(dates_vals, df.iloc[:,:])
plt.show()

##Setting up for animation
%matplotlib

fig, ax = plt.subplots(figsize=(12, 6))
lines = [ax.plot([], [], linestyle='-')[0] for _ in range(df.shape[1])]

def init():
for line in lines:
line.set_data([], [])
return lines

def animate(i):
for j, line in enumerate(lines):
line.set_data(dates_vals[:i], df.iloc[:i, j])
return lines

ani = animation.FuncAnimation(fig=fig, func=animate, frames=len(df), init_func=init, blit=True, repeat=True)
Я настроил это следующим образом, поскольку тогда независимо от количества кварталов или количества стран диаграмма будет работать так, как она взята из файла Excel, который может меняться. Однако это работает, когда я использую plt.show(), но не могу анимировать его?
Будем очень признательны за любые предложения.

Подробнее здесь: https://stackoverflow.com/questions/788 ... ine-charts

Вернуться в «Python»