2017-01-30 94 views
0

我想創建一個小型模擬,我想我知道如何,但是爲了真正看到發生了什麼,我需要將其可視化。用Python繪製3D點Matploltlib

我從一個5x5x5數組開始,我想用數值填充它。

data = numpy.zeros(shape=(5,5,5)) 
data[:,:,0]=4 
data[:,:,1]=3 
data[:,:,2]=2 
data[:,:,3]=1 
data[:,:,4]=0 

這應該創建,其具有在向上方向上的梯度(如果第三軸是z)的立方體。

現在,我該如何繪製?我不想要表面圖或線框。只需指向每個座標,並且可以通過值進行顏色編碼或透明度。

作爲測試我試圖用

ax.scatter(numpy.arange(5),numpy.arange(5),numpy.arange(5)) 

繪製所有座標但這隻會繪製由5個點的線。

那麼...我怎麼能得到125個點,我想創建?

Thx。

+0

我剛剛找到了meshgrid ...現在scatter會繪製所有125個點,所以我不僅需要以某種方式爲這些點中的每一個賦值,讓我們可以說在z方向上從0到100。我可以這樣做嗎? – Pythoneer

回答

0

您可以編碼的顏色值是這樣的:

x = np.arange(5) 
X, Y, Z = np.meshgrid(x,x,x) 

v = np.arange(125) 
ax.scatter(X,Y,Z, c=v) 

的機制的文檔見here