第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

matplotlib:條形圖動(dòng)畫只能工作一次

matplotlib:條形圖動(dòng)畫只能工作一次

慕姐8265434 2023-04-25 15:40:07
我已經(jīng)使用FuncAnimation的方法實(shí)現(xiàn)了一個(gè)動(dòng)畫matplotlib.animation。代碼沒有錯(cuò)誤,但我不知道問題到底出在哪里!代碼:def visualization(self):    fig = plt.figure()        def animation_frame(i):        print(i)        trimmed_dist = self.get_distributions(i, self.window_size + i)        # create labels                     label_no = len(trimmed_dist)        labels = []        for index in range(label_no):            from_ = index * self.bucket_length            to_ = (index + 1) * self.bucket_length            label = '{:.2f} - {:.2f}'.format(from_, to_)            labels.append(label)                #create bar chart        colors = plt.cm.Dark2(range(label_no))        plt.xticks(rotation=90)        plt.bar(x=labels, height=trimmed_dist, color=colors)            frames_no = len(self.percentages) - self.window_size    print('frames_no:', frames_no)    animation = FuncAnimation(fig, animation_frame, frames=frames_no, interval=1000)    return animation輸出:PS 1:值為frame_no877。PS 2:我認(rèn)為問題在于可視化方法中的返回。所以我已經(jīng)更改了代碼,但它仍然無法正常工作。
查看完整描述

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.percentagesself.window_sizeself.get_distributionsself.bucket_length值和類型,以確保正確計(jì)算labels和。trimmed_dist


查看完整回答
反對(duì) 回復(fù) 2023-04-25
  • 1 回答
  • 0 關(guān)注
  • 163 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)