簡體   English   中英

使用matplotlib imshow在for循環中顯示numpy數組

[英]Display numpy array in a for loop using matplotlib imshow

我有一個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()不起作用,它只是在循環終止后顯示圖像。

PS。 我正在使用Ipython筆記本

我在網上發現了不同的東西,但沒有一個在我的電腦上工作(例如我試圖使用matplotlib的動畫模塊)

奇怪的是,如果我嘗試使用標准的python提示執行此示例( http://matplotlib.org/examples/animation/dynamic_image2.html ),一切正常,而在Ipython筆記本上它不起作用。 誰能解釋我為什么?

筆記:

也許我過分簡化了我的代碼;

我正在研究森林火災模型,數組是一個填充0 =空站點,1 =樹,2 =火的網格。

在每個時間步驟(迭代):

  1. 在隨機選擇的站點上放置一棵樹,如果該站點是空閑的,則種植樹
  2. 一棵樹以概率f點燃

我想使用色圖來顯示數組,以可視化我的模型的演變

imshow(a)將數組a的值繪制為像素值,但不會顯示圖。 要在for循環的每次迭代后查看圖像,您需要添加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

imshow用於在圖中顯示圖像。 使用print顯示numpy數組:

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

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

    # ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM