问题:3D matplotlib图中y轴和z轴的互换位置

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

在此处输入图像描述

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

我环顾四周,但没有办法告诉matplotlib这样做。

添加: 我不想求助于我交换数据和标签的黑客行为。这是一个简单的 3 点 3D 图,但我必须绘制更复杂的曲面。我正在寻找一个 general 解决方案,而不仅仅是适用于散点图的解决方案。告诉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 中。

Logo

学AI,认准AI Studio!GPU算力,限时免费领,邀请好友解锁更多惊喜福利 >>>

更多推荐