2017-02-16 3 views
0

これをたくさん見てみましたが、具体的な例については多くの情報がありますが、それらはあまりにも理解しやすいものです。Numpy N-Dマトリックスと3Dメッシュグラフ

Numpy N-Dマトリックスのデータを3Dグラフに配置するにはどうすればよいですか。以下の例を参照してください。

import numpy as np 
X =20 

Y = 20 
Z = 2 
sample = np.zeros(((X,Y,Z))) 
sample[1][2][2]=45 
sample[1][3][0]=52 
sample[1][8][1]=42 
sample[1][15][1]=30 
sample[1][19][2]=15 

私は、3Dグラフ(プロット)上にX、Y、Z位置の値を使用したいと考えています。事前に

おかげ

import numpy as np 
import matplotlib.pyplot as plt 
from mpl_toolkits.mplot3d import axes3d 

# Define size of data 
P= 25 
X = 70 
Y = 25 
Z = 3 

# Create meshgrid 
x,y = np.meshgrid(np.arange(X),np.arange(Y)) 

# Create some random data (your example didn't work) 
sample = np.random.randn((((P,X,Y,Z)))) 

# Create figure 
fig=plt.figure() 
ax=fig.add_subplot(111,projection='3d') 
fig.show() 

# Define colors 
colors=['b','r','g'] 

# Plot for each entry of in Z 
for i in range(Z): 
    ax.plot_wireframe(x, y, sample[:,:,:,i],color=colors[i]) 
    plt.draw() 
plt.show() 

しかし、私は唯一のX、Y、Zのみを描きたいです。 上記のPythonコードを使用するとValueErrorのようなエラーが発生する:アンパックする値が多すぎる

+0

[ダッシュボード] –

+0

@DanielForsmanを入力してください。これは質問を明確にします –

+0

"メッシュダイアグラム"の意味を説明するのは始まりになります。おそらく一連のテスト入力と期待される出力。 –

答えて

1

このようなものをお探しですか?

import numpy as np 
import matplotlib.pyplot as plt 
from mpl_toolkits.mplot3d import axes3d 

# Define size of data 
X = 20 
Y = 20 
Z = 3 

# Create meshgrid 
x,y = np.meshgrid(np.arange(X),np.arange(Y)) 

# Create some random data (your example didn't work) 
sample = np.random.randn(X,Y,Z) 

# Create figure 
fig=plt.figure() 
ax=fig.add_subplot(111,projection='3d') 
fig.show() 

# Define colors 
colors=['b','r','g'] 

# Plot for each entry of in Z 
for i in range(Z): 
    ax.plot_wireframe(x, y, sample[:,:,i],color=colors[i]) 
    plt.draw() 
plt.show() 

あなたが与えることになる

3D wireframe plot

matplotlibに3Dデータを表示するにもhere参照する他の方法の多くがあります。ただし、常に3次元に制限されています(色が4次元をエンコードする3D散布図を作成する場合は4)。ですから、どの次元を表示したいのか、何らかの形で要約できるのかどうかを判断する必要があります。

+0

このコードは私が探していたものですが、私は4Dマトリックスのために必要です。 4Dの行列に合わせてコードを編集したとき(plsはポストの編集コードを見ます)、それは私に多くのエラーをもたらします –

関連する問題