默认情况下,使用 matplotlib
在 3D 中绘制一组点(或其他),垂直定位 z
轴,如下所示(代码如下):
我需要调换 z
和 y
轴,以便垂直显示 y
轴。
我环顾四周,但找不到告诉 matplotlib
执行此操作的方法。
添加:我不想求助于交换数据和标签的 hack。这是一个简单的 3 点 3D 图,但我必须绘制更复杂的表面。我正在寻找一种通用 解决方案,而不仅仅是适用于散点图的解决方案。告诉 matplotlib
垂直放置 y
轴而不是 z
轴的简单方法是 clean做吧。
MWE
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
ax = Axes3D(fig)
ax.scatter([0.2, 0.5, 0.8], [2.3, 0.47, 1.], [2.1, 5.3, 0.7])
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')
plt.show()
最佳答案
我不认为这是目前可能的。 ax.view_init()
也需要接受第三个角度。
我在 github 上开了一个问题,https://github.com/matplotlib/matplotlib/issues/14453#issue-452397120 ,希望有人致力于实现此功能。
更新
第三个视角是最近实现的,已经合并到matplotlib主分支:https://github.com/matplotlib/matplotlib/pull/21426
它应该出现在 Matplotlib 3.6.0 中。
关于python - 3D matplotlib 图中 y 轴和 z 轴的交换位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34812843/