2017-09-17 25 views
1

matplotlibでplot_surfaceを使用して3Dサーフェスをプロットしてみました。私のコードは次のとおりPythonのX軸とY軸のスケールを設定する方法plot_surface

fig = plt.figure() 
ax = fig.gca(projection='3d') 
# ax.set_aspect('equal') 
ax.plot_surface(X, Y, H4200, rstride=1000, cstride=1000) 

ax.set_xlabel('X Label') 
ax.set_ylabel('Y Label') 
ax.set_zlabel('Z Label') 
# ax._autoscaleXon = True 
# ax._autoscaleYon = True 
# ax._autoscaleZon = True 
# ax.set_aspect('equal', adjustable='box') 

plt.show() 

プロットの結果は、次のとおり

1:

enter image description here

2:明らか

enter image description here

、Zの長さ単位はX aの単位と等しくないn軸Y軸。

私の質問は、X軸とY軸のスケールに等しいZ軸のスケールを設定する方法ですか?

私はax.set_aspect('equal'), ax._autoscaleXon = True, ax._autoscaleYon = True, ax._autoscaleZon = True, ax.set_aspect('equal', adjustable='box')を私のコメントに見ましたが、うまくいかない、この質問を解決するにはどうすればよいですか?私はあなたの助けが必要です、ありがとう!

答えて

0

は、それは私の作品、

ax.set_aspect(1) 

を試してみてください。

編集1

あなたのケースでは、私はmatplotlibの力が異なると、あなたのZデータの全範囲を(対応するZ軸を自動スケールためset_aspect(1)又はset_aspect(「等しい」)が失敗したと思われますxとyよりも大きさのオーダー)。 このような状況では、hereのトリックが必要です。

+0

私は試しましたが、それでも動作しません。 – yogazining

+0

@yogazining私の編集した答えをご覧ください。 – swatchai

+0

ありがとう、私はあなたのソリューションを実装し、それは動作します!すばらしいです!! – yogazining

関連する問題