AttributeError:' FigureCanvasMac'对象没有属性' restore_region'在Mac OSX上使用matplotlib动画示例

时间:2016-07-07 19:54:34

标签: python macos animation matplotlib

使用matplotlib site的示例代码:

我收到错误:

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()

由于

1 个答案:

答案 0 :(得分:0)

必须在blit=FalseFuncAnimation()中设置ArtistAnimation(),代码似乎运行正常。使用MacPorts中的python 3.4和py34-matplotlib 1.5.2。