三维matplotlib图中y轴和z轴的交换位置

Gab*_*iel 14 python 3d plot matplotlib

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

在此输入图像描述

我需要交换zy轴,以便y垂直显示该轴.

我环顾四周但却没有办法告诉matplotlib你这样做.

补充:我不想在我交换数据和标签的地方求助.这是一个简单的3点3D图,但我必须绘制更复杂的表面.我正在寻找一个通用的解决方案,而不仅仅是散点图.告诉matplotlib我们将y轴垂直而不是轴放在一个简单的方法z干净的方法.


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()
Run Code Online (Sandbox Code Playgroud)

Bas*_*ian 6

我认为目前这是不可能的。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 中。

  • 这是一个实现起来很有趣的功能,希望大家都觉得它有用! (4认同)

Sco*_*ott 3

Matplotlib 3.6.0 现已发布,允许您通过命令设置第三个视角ax.view_init(elev, azim, roll)。请参阅官方文档

在此输入图像描述