簡體   English   中英

繪制3D numpy數組的第3軸

[英]Plot 3rd axis of a 3D numpy array

我有一個3D numpy數組,它是在某些時間戳t上的2D(m,n)圖像堆棧。 所以我的數組是形狀(t,m,n)。 我想繪制一個像素值作為時間的函數。

例如:

import numpy as np
import matplotlib.pyplot as plt

data_cube = []
for i in xrange(10):
    a = np.random(100,100)
    data_cube.append(a)

所以我的(t,m,n)現在的形狀為(10,100,100)。 假設我要在我要執行的10個步驟中的每個步驟上繪制一維索引[12] [12]的值:

plt.plot(data_cube[:][12][12])
plt.show()

但是我得到索引超出范圍錯誤。 我以為我可能會混合使用索引,但是我生成的每個圖似乎都在“錯誤”軸上,即跨2D數組之一,但是我希望它“通過”垂直堆棧。 提前致謝!

解決方案如下:由於您已經在使用numpy ,因此將最終列表轉換為數組,而僅使用切片。 您的問題有兩個方面:

第一:您最終的data_cube不是數組。 對於列表,您將不得不遍歷值

第二:切片不正確。

import numpy as np
import matplotlib.pyplot as plt

data_cube = []
for i in range(10):
    a = np.random.rand(100,100)
    data_cube.append(a)
data_cube = np.array(data_cube)   # Added this step 

plt.plot(data_cube[:,12,12]) # Modified the slicing

產量

在此處輸入圖片說明

一個不太冗長的版本,避免了迭代:

data_cube = np.random.rand(10, 100,100)
plt.plot(data_cube[:,12,12])

暫無
暫無

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

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