如果我使用代码
创建文件test.py
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
if __name__ == '__main__':
fig = plt.figure()
title = fig.suptitle("Test _")
def anim(i):
title.set_text("Test %d" % i)
plt.plot([0,1], [0,1])
FuncAnimation(fig, anim)
plt.show()
并尝试在我的命令行中运行它,使用python test.py
,我得到一个标题为Test _
且没有任何轴的空屏幕。
使用python -i test.py
运行时也是如此,但如果我现在在交互式会话中输入相同的代码
>>> fig = plt.figure()
>>> title = fig.suptitle("Test _")
>>> FuncAnimation(fig, anim)
>>> plt.show()
一切都按预期工作。
我已经看了这么久了,我似乎没有找到任何与此相关的问题或问题。我在OS X上的python 3.5.2中使用matplotlib 2.0.0。
这是一个(已知)错误吗?任何有想法的人可能会发生这种情况或如何解决这个问题?
答案 0 :(得分:3)
从animation documentation:" [..],保持对实例对象的引用至关重要。"
因此,您需要通过将FuncAnimation实例分配给变量来使其保持活动状态。
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
if __name__ == '__main__':
fig = plt.figure()
title = fig.suptitle("Test _")
def anim(i):
title.set_text("Test %d" % i)
plt.plot([0,1], [0,1])
ani = FuncAnimation(fig, anim)
plt.show()