为什么我们需要FuncAnimation?

2024-05-20 00:00:56 发布

您现在位置:Python中文网/ 问答频道 /正文

在Coursera的一个关于用Matplotlib在Python中绘图的课程中,我被教会使用FuncAnimation对象来制作动画图。为什么这是必要的?显而易见的技术是使用for循环来更新绘图并在每次迭代时暂停。这看起来容易多了。在

我试过了,但没用。下面是一个简单的例子:

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

%matplotlib notebook

plt.plot([0, 1, 2], [0, 1, 0])
l = plt.gca().get_children()[0]
for i in range(5):
    l.set_ydata([0, 1, i/10])
    plt.show()
    time.sleep(1)

结果是,在5秒延迟之后,只显示最后的绘图。为什么这个不管用?在

编辑:我应该指定我在Jupyter笔记本中运行这个代码。在


Tags: 对象import绘图fortimematplotlibasplt
1条回答
网友
1楼 · 发布于 2024-05-20 00:00:56

有关在jupyter笔记本中设置matplotlib绘图动画的一般方法,请参见Animation in iPython notebook。在

因此,需要注意的是,只有在jupyter笔记本中使用带有python循环的%matplotlib notebook后端而不是内部的matplotlib.animation类时,才会出现问题。在

为了确保交互性,%matplotlib notebook在jupyter输出中使用自己的小应用程序创建matplotlib图形。在这个应用程序启动之前,当然不能与它交互。一旦这个应用程序启动,IPython笔记本上与python代码的连接必然会丢失。这种行为类似于python中的其他GUI:一旦GUI事件循环启动,python代码就会停止,直到GUI关闭。在

相关问题 更多 >