python - 3D matplotlib 图中 y 轴和 z 轴的交换位置

标签 python matplotlib plot 3d

默认情况下,使用 matplotlib 在 3D 中绘制一组点(或其他),垂直定位 z 轴,如下所示(代码如下):

enter image description here

我需要调换 zy 轴,以便垂直显示 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/

相关文章:

Python 字典 - 查找值等于的最小键

python - 我可以使用 pygtk 为 fedora 编写 GUI 吗?

python - 将第二个动画图形嵌入到 PyQt5 GUI

python - 在python中分离类定义和实现

python - 将 Dataframe 分割成更小的 DatafFames

python - 如何使用多个自定义值标记条形

python - 如何 "zoom out"matplotlib 中的绘图,保持所有大小比例相同,但以英寸为单位减小大小?

Python绘制时间列表

matlab - 尝试使用 MATLAB(初学者)创建迭代

python - 将数据集与绘图进行比较 - 将虚线与实线混合