2010-12-20 10 views
4

matplotlibで地形標高データをプロットしようとしています。私は、各行にx、y、z座標を含むnx3のnumpy配列を構築します(x、y平面のグリッド内に規則的に配置されています)。私はこのコードでそれをプロットしようとしています:matplotlibで地形データをプロットするplot_surface

fig = plt.figure() 

ax = fig.gca(projection='3d') 

print desiredData[:,0] 

surf = ax.plot_surface(desiredData[:,0], desiredData[:,1], 
         desiredData[:,2], rstride =1, 
         cstride = 1, cmap=cm.jet, 
         linewidth = 0, antialiased = False) 

plt.show() 

が、私はこのエラーを取得しています:私は間違って

Traceback (most recent call last): 
    File "gisConvert.py", line 203, in <module> 
linewidth = 0, antialiased = False) 
File "C:\Python27\lib\site-packages\mpl_toolkits\mplot3d\axes3d.py", line 663, 
in plot_surface 
rows, cols = Z.shape 
ValueError: need more than 1 value to unpack 

何をしているのですか?

答えて

4

エラーは、

ValueError: need more than 1 value to unpack 

を示唆しているとして、あなたは、1Dアレイを使用しなくXYZための2Dアレイをplot_surface期待されています。

だからこそ、あなたはValueErrorを手に入れました。

+1

相当です。 OP、plot_surfaceの使い方の良い例については、examples/mplot3dディレクトリを参照してください。 –

+0

したがって、nx3アレイの代わりに3つのmxpアレイが必要ですか?私はmatplotlibがデータの構造を特定できると思いますか? –

+0

@Ben Jones:座標には2D配列が必要です。 – user225312