Я пытался создать горизонтальную гистограмму, где заголовок и данные меняются в каждом кадре. Проблема, с которой я сталкиваюсь, заключается в том, что, если я использую blit=True
, данные обновляются, но не заголовок. Когда я использую blit=False
, заголовок изменяется, но не данные (он только увеличивается).
Я прочитал десятки ответов и перепробовал все, включая set_title и set_text , но я в полной растерянности. Спасибо за вашу помощь.
%matplotlib
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.animation as animation
import numpy as np
import csv
people = ('','Jim', 'Dan')
plt.rcdefaults()
fig, ax = plt.subplots()
y_pos = np.arange(len(people))
ax.set_xlim(0,10)
ax.set_yticks(y_pos)
ax.set_yticklabels(people)
ax.invert_yaxis()
ax.set_xlabel('Skill')
titleList=['Basketball','Hockey']
df=[[0,5,7],[0,4,9]]
title = ax.text(0.5,0.95, "Test", bbox={'facecolor':'w', 'alpha':0.5, 'pad':5},transform=ax.transAxes, ha="center")
def animate(i):
# Example data
while i<2:
ax.set_yticks(y_pos)
ax.set_yticklabels(people)
ax.set_xlabel(titleList[i])
performance=df[i]
title.set_text(str(titleList[i]))
line= ax.barh(y_pos, performance, align='center',
color='blue', ecolor='None')
return line
ani = animation.FuncAnimation(fig,animate, frames=5, blit=True
,interval=2000,repeat=False)
plt.show()