为什么我不能在自1.5.0以来调用matplotlib.animation.FuncAnimation时设置blit = True?

时间:2015-11-12 14:52:20

标签: python python-2.7 matplotlib

自更新到matplotlib 1.5.0,

matplotlib.animation.FuncAnimation(fig, func, init_func=func,
                                   frames=frames, 
                                   interval=1100,repeat_delay=2000, 
                                   blit=True)

结果

  

AttributeError:' NoneType'对象没有属性' set_animated'

在matplotlib / animation.py第1134行,

TimedAnimation.__init__(self, fig, **kwargs)

我需要设置blit=False才能继续而不会出错。

无论我如何更改figfunc等的值,都会发生这种情况,无论如何,这些值在1.5.0之前都能正常工作。

1.5.0是否有变化导致这种情况?我可以继续使用blit=True吗?

1 个答案:

答案 0 :(得分:0)

在我的具体情况中,我在多个轴上设置了几条线。当我设置blit=True时,我看到了同样的错误。解决方法是更改​​我的return函数中的animate()语句 - 在我从模板中抓取的原始函数中,函数看起来像

def animate(i):
...
return lines,

需要更改为

def animate(i):
...
return lines  # no comma

blit参数必须告诉某些东西将动画返回的每个元素视为具有set_animated方法的艺术家 - 逗号会添加额外的层次结构层,即列表中的列表而不是列表艺术家。