如何在不显示轴的情况下制作3D绘图?
在绘制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)
2条答案
按热度按时间oiopk7p51#
Ben Root提供了一个修补程序,可以修复% 1的此问题。0.1。它可以作为this thread最后一封电子邮件的附件找到。引用Ben的话:
好的,看起来隐藏3d轴是v1之后添加的功能。0发行版(但在我开始从事mplot 3d工作之前)。此补丁应启用基本功能,而不会干扰现有功能。要隐藏轴,您必须将私有成员“_axis3don”设置为False,如下所示:
ax = plt.gca(projection='3d')ax._axis3don =假
如果你这样做,那么你现在就会得到你想要的,并且你的代码在升级时仍然与mplot 3d兼容(尽管首选的方法是调用set_axis_on()或set_axis_off())。
我希望这有帮助!
本·鲁特
hs1ihplo2#
ax.set_axis_off()
这里仅提供一个具体而直接的例子,说明https://stackoverflow.com/a/7363931/895245中提到的内容
输出:
如果没有
ax.set_axis_off()
,它看起来像:但是你会注意到,这会在图形周围产生过大的空白边距,因为它只是隐藏了轴,而没有改变视图框。我试过
bbox_inches='tight'
和it did not help as it does in 2D。如何解决这个问题:Remove white spaces in Axes3d (matplotlib)在matplotlib上测试==3.2.2.