2016-07-07 49 views
1

matplotlib動畫例如使用從matplotlib網站的示例代碼:AttributeError的: 'FigureCanvasMac' 對象有沒有屬性 'restore_region' 兼容Mac OSX

我得到的錯誤:

AttributeError: 'FigureCanvasMac' object has no attribute 'restore_region' 

輸出的垃圾郵件作爲動畫循環。動畫本身好好嘗試一下顯示器,只是表示:

Figure

此代碼工作正常在我的Windows PC上,而其他post I could find on this建議您設置:

blit=False 

修復。我仍然得到相同的錯誤,所以不知道是否有人知道我可以如何解決這個問題。我跑的代碼是:

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

def update_line(num, data, line): 
    line.set_data(data[...,:num]) 
    return line, 

fig1 = plt.figure() 

data = np.random.rand(2, 25) 
l, = plt.plot([], [], 'r-') 
plt.xlim(0, 1) 
plt.ylim(0, 1) 
plt.xlabel('x') 
plt.title('test') 
line_ani = animation.FuncAnimation(fig1, update_line, 25, fargs=(data, l), 
    interval=50, blit=True) 
#line_ani.save('lines.mp4') 

fig2 = plt.figure() 

x = np.arange(-9, 10) 
y = np.arange(-9, 10).reshape(-1, 1) 
base = np.hypot(x, y) 
ims = [] 
for add in np.arange(15): 
    ims.append((plt.pcolor(x, y, base + add, norm=plt.Normalize(0, 30)),)) 

im_ani = animation.ArtistAnimation(fig2, ims, interval=50, repeat_delay=3000, 
    blit=True) 
#im_ani.save('im.mp4', metadata={'artist':'Guido'}) 

plt.show() 

感謝

+0

當我設置blit = False時,該示例在我的Mac(OS-X 10.11.5,matplotlib 1.5.0)上正常工作。你是否將blit關鍵字設置爲False? – titusjan

回答

0

必須設置兩個FuncAnimation()ArtistAnimation()blit=False和代碼似乎正常工作。從MacPorts使用python 3.4和py34-matplotlib 1.5.2。

相關問題