1 回答

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超4個(gè)贊
我相信您正在 Jupyter 筆記本中運(yùn)行您的代碼。%matplotlib notebook
在這種情況下,您應(yīng)該在代碼的開頭添加。
中找到的代碼,以查看它是否適合您。
編輯
我在筆記本中實(shí)現(xiàn)了你的部分代碼。由于我不知道self.percentages
、self.window_size
和是什么self.get_distributions
以及self.bucket_length
它們有哪些值,為了簡(jiǎn)單起見,我設(shè)置了labels = ['a', 'b', 'c']
和trimmed_dist = [3*i, 2*i, i**2]
,以便運(yùn)行一個(gè)簡(jiǎn)單的動(dòng)畫。
這是我的代碼:
%matplotlib notebook
from matplotlib.animation import FuncAnimation
import matplotlib.pyplot as plt
def animation_frame(i):
? ? plt.gca().cla()
? ??
? ? labels = ['a', 'b', 'c']
? ? trimmed_dist = [3*i, 2*i, i**2]
? ? label_no = len(trimmed_dist)
? ??
? ? colors = plt.cm.Dark2(range(label_no))
? ? plt.xticks(rotation=90)
? ? plt.bar(x=labels, height=trimmed_dist, color=colors)
? ? plt.title(f'i = {i}') # this replaces print(i)
? ? plt.ylim([0, 100])? ? # only for clarity purpose
fig = plt.figure()
frames_no = 877
print('frames_no:', frames_no)
animation = FuncAnimation(fig, animation_frame, frames=frames_no, interval=1000)
這就是結(jié)果。
我添加plt.gca().cla()
是為了在每次迭代時(shí)擦除前一幀。print(i)
聲明對(duì)我也不起作用,所以我將其替換plt.title(f'i = {i}')
為 order 以便寫i
在標(biāo)題中。相反,print('frames_no:', frames_no)
工作正常。
如您所見,我的動(dòng)畫運(yùn)行了,所以請(qǐng)嘗試實(shí)現(xiàn)我對(duì)您的代碼所做的更改。
如果動(dòng)畫仍然不運(yùn)行,請(qǐng)嘗試檢查self.percentages
、self.window_size
和self.get_distributions
的self.bucket_length
值和類型,以確保正確計(jì)算labels
和。trimmed_dist
添加回答
舉報(bào)