如何隐藏matplotlib 3d中的坐标轴?

问题描述:

如何在不显示轴的情况下制作3D绘图?如何隐藏matplotlib 3d中的坐标轴?

绘制三维图时,Matplotlib不仅绘制x,y和z轴,还绘制x-y,y-z和x-z平面上的浅灰色网格。我想画一个“*浮动”的3D情节,没有任何这些元素。

的东西,我已经试过:

# Doesn't work; this hides the plot, not the axes 
my_3d_axes.set_visible(False) 

# Doesn't do anything. Also, there's no get_zaxis() function. 
my_3d_axes.get_xaxis().set_visible(False) 
my_3d_axes.get_yaxis().set_visible(False) 
+0

你试过用什么来工作。不幸的是,我不确定有什么方法可以轻松地做到这一点,希望仍然存在! –

+0

@Joe Klington:出于好奇,我曾尝试过的两件事中的哪一件?我想知道,因为第一个,axes.set_visible(),有以下帮助描述:“设置艺术家的可见性。”所以它似乎总是应该设置图形的可见性,而不是坐标轴。至于第二个,它是如何工作的,什么时候没有get_zaxis()方法? – SuperElectric

+0

如果我记得正确的话,它是'my_3d_axes.set_visible(False)'用来工作的。 (这实际上是相反的直觉,它隐藏了2D图的整个绘图,这就是为什么他们将它改变为3D绘图相同的原因。) –

本根提供修复此为1.0.1补丁。它可以作为最后一封电子邮件this thread的附件。引用本:

好吧,看起来像隐藏的3D轴是v1.0发布后添加的功能(但在我开始mplot3d工作之前)。这个补丁应该启用基本功能而不会干扰现有的功能。要隐藏坐标轴,你就必须设置私有成员 “_axis3don” 为False,像这样:

AX = plt.gca(投影= '3D') ax._axis3don =假

如果您这样做,然后你会得到你想要的东西,当你升级时你的代码仍然与mplot3d兼容(尽管首选的方法是调用set_axis_on()或set_axis_off())。

我希望有帮助!

奔根

+20

现在支持'ax.set_axis_off()'和'set_axis_on()'(1.4.1) – user989762