Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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
Python 使用matplotlib imshow在for循环中显示numpy数组_Python_Arrays_Animation_Numpy_Matplotlib - Fatal编程技术网

Python 使用matplotlib imshow在for循环中显示numpy数组

Python 使用matplotlib imshow在for循环中显示numpy数组,python,arrays,animation,numpy,matplotlib,Python,Arrays,Animation,Numpy,Matplotlib,我有一个numpy数组,其元素在for循环中更新: a = np.array([[1,2,3],[4,5,6],[7,8,9]]) for t in range(0,10): imshow(a) for i in range(0,a.shape[0]): for j in range(0,a.shape[1]): a[i][j] += 1 我想在每次迭代时显示数组,但imshow()不起作用,它只在循环终止后显示图像 另外,我用的是I

我有一个numpy数组,其元素在for循环中更新:

a = np.array([[1,2,3],[4,5,6],[7,8,9]])

for t in range(0,10):
    imshow(a)

    for i in range(0,a.shape[0]):
        for j in range(0,a.shape[1]):
            a[i][j] += 1
我想在每次迭代时显示数组,但imshow()不起作用,它只在循环终止后显示图像

另外,我用的是Ipython笔记本

我在网上找到了不同的东西,但没有一个能在我的计算机上工作(例如,我尝试使用matplotlib的动画模块)

奇怪的是,如果我尝试使用标准python提示符执行这个示例(),一切都正常,而在Ipython笔记本上则不正常。谁能解释一下原因吗

注意事项:

也许我把代码过于简化了

我正在研究一个森林火灾模型,这个数组是一个网格,里面填充了0=空站点,1=树,2=火

在每个时间步(迭代):

  • 将一棵树放在随机选择的场地上,如果场地空闲,则种植该树
  • 一棵树点燃的概率为f
  • 我想使用彩色地图显示阵列,以可视化我的模型的演变

    imshow(a)
    将阵列a的值绘制为像素值,但不会显示绘图。要在for循环的每次迭代后查看图像,需要添加
    show()

    这应该满足您的要求:

    from matplotlib.pyplot import imshow, show    
    
    a = np.array([[1,2,3],[4,5,6],[7,8,9]])
    
    for t in range(0,10):
        imshow(a)
        show()
    
        for i in range(0,a.shape[0]):
            for j in range(0,a.shape[1]):
                a[i][j] += 1
    

    只是一个旁注,为什么不做一些类似于
    a+=np.ones(a.shape)
    ?是的,我可以这样做,但我写下这个数组和这个for循环只是为了解释我的问题。这不是我正在处理的实际代码:)必需的导入语句:
    from matplotlib.pyplot import imshow,show