在 matplotlib 3d 图中旋转 z 轴

rotating the z-axis in matplotlib 3d figure

如何旋转 matplotlib 图形的 z 轴,使其显示为水平轴?我创建了以下 3d 图:

我尝试调整

中的值

ax.view_init() but no matter what values I used, I can't flip the z-axis so that the orientation of the three axes appear as like the ones in the following figure:

我想过把所有数据的三个分量改成x轴来画数据的z分量,但是这样对我的很多计算会很不方便,更重要的是,我不知道如何使用 ax.set_aspect 将整个图形保持在矩形框中的相同比例(矩形,因为数据的(原始)z 分量通常跨越比 x 和 y 更大的范围组件)。

那么如何旋转 z 轴(90 度)?

编辑:

只是为了澄清我的问题。使用答案中使用的示例,我有以下代码可以生成一个在所有三个轴上具有相同比例的图形,即使我调整弹出窗口 window 的大小,该图形仍然具有相同的纵横比三个轴的比例,看起来一样。这就是我想要的,但是 z 轴旋转了 90 度,所以它看起来是水平的(所需的坐标系看起来像上面的 EM 波图所示的坐标系)。如果我切换三个轴的绘图顺序,我会得到一个水平的 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()

您可以只更改传递给绘图函数的 X、Y、Z 值的顺序吗?

使用this example

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)

plt.show()

更改输入顺序:

ax.plot_wireframe(X, Z, Y, rstride=10, cstride=10)