Fal*_*art 5 python animation matplotlib ipython jupyter-notebook
我想使用Matplotlib在Jupyter中显示动画.这是一些基本的例子:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
fig, ax = plt.subplots()
line, = ax.plot(np.random.rand(10))
ax.set_ylim(0, 1)
def update(data):
line.set_ydata(data)
return line,
def data_gen():
while True:
yield np.random.rand(10)
ani = animation.FuncAnimation(fig, update, data_gen, interval=100);
from IPython.display import HTML
HTML(ani.to_jshtml())
Run Code Online (Sandbox Code Playgroud)
当我第一次运行代码时(或重新启动内核后),我得到了我想要的东西: 
但是,当我第二次运行相同的代码时,我会在左下角找到剩余的代码: 
我注意到当我%matplotlib inline在顶部添加时,即使在重新启动内核后我也得到了错误的输出.因此,我的猜测是%matplotlib每次创建动画时都必须将magic命令设置为默认值,但我甚至无法找到是否%matplotlib有默认值.
我用的是Anaconda.以下是我的版本:Conda版本:4.4.10
Python版本:Python 3.6.4 :: Anaconda, Inc.
IPython版本:6.2.1
Jupyter版本:5.4.0
我使用 plt.close() 停止第一个(不需要的)绘图,并且没有看到在单独的单元格中运行动画的问题。我相信这个问题与评论中链接的问题类似,jupyter 会自动显示前两行不需要的图 - fig, ax = plt.subplots()
line, = ax.plot(np.random.rand(10))。我厌倦了一些建议,例如在行尾使用分号和一些不同的魔术尝试,但没有乐趣。毫无疑问会出现更具体的解决方案,但现在......