水平軸として表示されるように、matplotlib の図の z 軸を回転させるにはどうすればよいですか? 次の 3D フィギュアを作成しました。
の値を調整してみました
ax.view_init() を使用しましたが、使用した値に関係なく、3 つの軸の向きが次の図のように表示されるように z 軸を反転することはできません。
![]()
x 軸を使用してデータの z 成分をプロットするように、すべてのデータの 3 つの成分を変更することを考えましたが、多くの計算にとって非常に不便です。 ax.set_aspect を使用して、長方形のボックス内で図全体を同じスケールに保つ方法を知っている (データの (元の) z 成分は通常、x および y 成分よりも広い範囲に及ぶため、長方形です)。
では、z 軸を (90 度) 回転させるにはどうすればよいでしょうか。
編集:
私の質問を明確にするために。回答で使用されている例を使用すると、3 つの軸すべてで同じスケールの図を生成できる次のコードがあり、ポップアウト ウィンドウのサイズを変更しても、図の 3 つの縦横比は同じままです。軸と同じに見えます。これは私が望んでいるものですが、z 軸が 90 度回転しているため、水平に見えます (目的の座標系は、上の図の EM 波のように見えます)。3 つの軸のプロット順序を切り替えると、水平方向の z 軸 (x 軸としてプロットされる) が得られますが、ax.set_aspect を使用してスケールを変更することはできません。
from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
X, Y, Z = axes3d.get_test_data(0.05)
ax.plot_wireframe(X, Y, Z, rstride=10, cstride=10)
ax.set_xlim(-30,30)
ax.set_ylim(-30,30)
ax.set_zlim(-90,90)
ax.set_aspect(3, 'box-forced')
plt.show()