你如何在 Ipython 中更新内嵌图像?

The*_*ond 6 python matplotlib ipython imshow jupyter-notebook

编辑:我的问题与“动画”本身无关。我在这里的问题只是关于如何在 Ipython 笔记本中的 for 循环中连续显示一个新的 内嵌 图像

本质上,我想在同一位置、内联显示更新的图像,并让它在循环中更新以显示。所以我的代码目前看起来像这样:

import numpy as np
import matplotlib
import matplotlib.pyplot as plt
from IPython import display
%matplotlib inline  

fig, ax = plt.subplots(nrows = 1, ncols = 1, figsize=(10, 10))
for ii in xrange(10):
    im = np.random.randn(100,100)
    ax.cla()
    ax.imshow(im, interpolation='None')
    ax.set_title(ii)
    plt.show()
Run Code Online (Sandbox Code Playgroud)

问题是,这目前只是...,好吧,显示第一张图像,然后它永远不会改变。

相反,我希望它在每次迭代、内联、在同一个地方简单地显示更新的图像。我怎么做?谢谢。

bas*_*flp 1

figure.canvas.draw()每次向图中添加新内容时都可以调用。这将刷新情节(从这里开始)。尝试:

import numpy as np
import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt
from IPython import display
from time import sleep

fig = plt.figure()
ax = fig.gca()
fig.show()

for ii in range(10):
    im = np.random.randn(100, 100)
    plt.imshow(im, interpolation='None')
    ax.set_title(ii)
    fig.canvas.draw()
    sleep(0.1)
Run Code Online (Sandbox Code Playgroud)

然而,我无法在 IPython Notebook 中对此进行测试。