Python 动画只能显示第一帧

Python 动画只能显示第一帧,python,matplotlib,jupyter-notebook,Python,Matplotlib,Jupyter Notebook,我在jupyter笔记本中编写了代码,matplotlib的版本是2.2.0,python的版本是2.7。 我试图显示一个动画,但输出的只是第一帧,一个静态图片。 我找不到错误 这是静态图片: Jupyter笔记本电脑输出无法设置动画的PNG。您可以使用Javascript在笔记本中设置绘图动画 from matplotlib import pyplot as plt from matplotlib import animation import numpy as np fig, ax = pl

我在jupyter笔记本中编写了代码,matplotlib的版本是2.2.0,python的版本是2.7。 我试图显示一个动画,但输出的只是第一帧,一个静态图片。 我找不到错误

这是静态图片:


Jupyter笔记本电脑输出无法设置动画的PNG。您可以使用Javascript在笔记本中设置绘图动画

from matplotlib import pyplot as plt
from matplotlib import animation
import numpy as np
fig, ax = plt.subplots()
x = np.arange(0, 2*np.pi, 0.01)
line, = ax.plot(x, np.sin(x))
def animate(i):
    line.set_ydata(np.sin(x + i/10.0))
    return line,
def init():
    line.set_ydata(np.sin(x))
    return line,
ani = animation.FuncAnimation(fig=fig,
                              func=animate,
                              frames=100,
                              init_func=init,
                              interval=20,
                              blit=False)
plt.show()

除了下面提供的答案之外,您还可以使用“笔记本”后端。通过
%matplotlib笔记本
remplace
%matplotlib inline
from matplotlib import pyplot as plt
from matplotlib import animation
import numpy as np
from IPython.display import HTML


fig, ax = plt.subplots()
x = np.arange(0, 2*np.pi, 0.01)
line, = ax.plot(x, np.sin(x))
def animate(i):
    line.set_ydata(np.sin(x + i/10.0))
    return line,
def init():
    line.set_ydata(np.sin(x))
    return line,
ani = animation.FuncAnimation(fig=fig,
                              func=animate,
                              frames=100,
                              init_func=init,
                              interval=20,
                              blit=False)

HTML(ani.to_jshtml())