Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用imshow在python中将连续图像/数组显示为重复动画_Python_Arrays_Animation_Matplotlib - Fatal编程技术网

使用imshow在python中将连续图像/数组显示为重复动画

使用imshow在python中将连续图像/数组显示为重复动画,python,arrays,animation,matplotlib,Python,Arrays,Animation,Matplotlib,我已经计算了一些结果,它们是64x64阵列的形式。每个数组都是在一个数组之后创建的。我想一个接一个地显示这些数组,就像动画一样。 我尝试了很多方法,但都没有成功。我很沮丧,关于动画的问题一直无法帮助我实现这一点。这不是我第一次尝试这个,每次我的结果都是一样的:我从来没有让这个工作 我尝试过的方法是: 我目前的代码是: fig, ax = plt.subplots() def animate(i): return imagelist[i] def init(): fig.s

我已经计算了一些结果,它们是64x64阵列的形式。每个数组都是在一个数组之后创建的。我想一个接一个地显示这些数组,就像动画一样。 我尝试了很多方法,但都没有成功。我很沮丧,关于动画的问题一直无法帮助我实现这一点。这不是我第一次尝试这个,每次我的结果都是一样的:我从来没有让这个工作

我尝试过的方法是:

我目前的代码是:

fig, ax = plt.subplots()
def animate(i):
    return imagelist[i] 
def init():
    fig.set_data([],[])
    return fig
ani = animation.FuncAnimation(fig, animate, np.arange(0, 19), init_func=init,
interval=20, blit=True)
plt.show()

这里imagelist是我上面提到的数组列表(长度20,0到19)。我的问题是,我如何才能让它工作?

几乎完全从您的第一次复制(并添加一些注释):


正如我所期望的那样,这会产生动画

您是否在Spyder中运行交互式python会话?如果是这样,您可能需要跑步

    %matplotlib qt
确保动画在其自己的窗口中打开,而不是内联显示(它不内联工作)


另外,请确保您没有上瘾。

我实现了一个方便的脚本,正好满足您的需要。试试看

例如:

imagelist = YOUR-IMAGE-LIST
def redraw_fn(f, axes):
    img = imagelist[f]
    if not redraw_fn.initialized:
        redraw_fn.im = axes.imshow(img, animated=True)
        redraw_fn.initialized = True
    else:
        redraw_fn.im.set_array(img)
redraw_fn.initialized = False

videofig(len(imagelist), redraw_fn, play_fps=30)

问题的第一个链接包含答案。我被你的问题弄糊涂了。对我来说,它没有包含答案。我第一次尝试完全按照第一个链接所说的去做。但是它无法工作。我从来不明白我做错了什么。现在我在问,我做错了什么,这是我看过的地方,但我还是不明白。链接上的代码没有改变吗?你的代码给了你什么错误?上面的代码给了我AttributeError:“Figure”对象没有属性“set_data”,但我已经更改了很多次,我想我看到了几乎所有的错误。所以我不需要初始化函数?这运行时没有错误,但是我没有看到动画,只有第一个图像。请尝试删除
blit=True
它是否为您显示动画?我只看到第一张图片。hmpf=one([4,4]),hmpf[2][1]=0,imagelist=[hmpf*i*255./19。对于范围(20)中的i],创建可以使用的数组列表。(python3不确定2):必须将animation.FuncAnimation分配给变量。删除ani=将使动画无法执行。我使用提供的代码获得“'AxeImage'对象不可编辑”和“Tkinter回调中的异常”,但通过修改updatefig以返回[im]而不是im来修复此问题。
imagelist = YOUR-IMAGE-LIST
def redraw_fn(f, axes):
    img = imagelist[f]
    if not redraw_fn.initialized:
        redraw_fn.im = axes.imshow(img, animated=True)
        redraw_fn.initialized = True
    else:
        redraw_fn.im.set_array(img)
redraw_fn.initialized = False

videofig(len(imagelist), redraw_fn, play_fps=30)