matplotlib子图动画的奇怪行为

时间:2017-02-16 14:14:10

标签: python matplotlib

我需要用子图设置动画。 为此,我使用这个官方的例子:

http://matplotlib.org/examples/animation/subplots.html

现在,我想通过一个函数访问此功能。 所以,我替换了这个官方例子的最后3行

ani = SubplotAnimation()
# ani.save('test_sub.mp4')
plt.show()

by:

def MyDraw():            
    ani = SubplotAnimation()
    plt.show()

MyDraw()

官方示例完美无缺,但通过函数MyDraw调用此方法不起作用。它不会产生任何错误信息,但图中显示每个轴内部没有曲线......

如果有人可以帮助我。 感谢。

2 个答案:

答案 0 :(得分:1)

您必须保留对动画对象的引用,或者它(以及更新绘图的计时器)获取垃圾。

请参阅http://matplotlib.org/api/animation_api.html#animation

答案 1 :(得分:0)

非常感谢你的帮助。

因此,解决方案是保持对动画对象的引用:

def MyDraw():            
    ani = SubplotAnimation()
    plt.show()
    return ani

ani=MyDraw()

即使您之后无需处理变量ani

另请注意

ani = SubplotAnimation()
plt.show() 

工作正常,但

SubplotAnimation()
plt.show()

不起作用,原因完全相同。