无轴绘制曲面

3 投票
3 回答
2822 浏览
提问于 2025-04-16 12:38

我想画一个没有坐标轴的表面图。为了更好地说明,我用图片来解释:

我想要的是这个:

desirerd

但是我现在得到的是这个:

current

3 个回答

2

你想要的是 grid 这个关键词(如果我理解得没错的话):

fig=figure()
ax = fig.add_subplot(111,projection="3d")
ax.plot(X,Y,Z)
ax.grid(on=False)
show()

要了解你是怎么设置你的图表的会更有帮助,但对我来说,在 pylab 中调试时,使用 ax.grid(on=False) 就解决了问题。这条命令可以关闭立方体边上的网格线。想了解更多细节,可以查看 mplot3d 的API文档:

http://matplotlib.sourceforge.net/mpl_toolkits/mplot3d/api.html

3

经过一番努力,我终于想出了这个:

ax.grid(False)
ax.w_xaxis._AXINFO['y']['color'] = (0.9, 0.9, 0.9, 0.0)
ax.w_xaxis._AXINFO['x']['color'] = (0.9, 0.9, 0.9, 0.0)
ax.w_xaxis._AXINFO['z']['color'] = (0.9, 0.9, 0.9, 0.0)

接下来,我想你可能会想把刻度、刻度标签等等都关掉。但我做不到!

人们可能会认为用 ax.axis("off")ax.xaxis.visible(False)ax.xaxis.set_alpha(0.0) 这些代码应该能看到明显的效果。

我现在用的是1.0.1版本,我怀疑这个axis3d对象里还有很多bug。最近它经历了很多变化。

在这里输入图片描述

6

这个代码可以关闭所有与坐标轴相关的设置:

ax.grid(False)
for a in (ax.w_xaxis, ax.w_yaxis, ax.w_zaxis):
    for t in a.get_ticklines()+a.get_ticklabels():
        t.set_visible(False)
    a.line.set_visible(False)
    a.pane.set_visible(False)

撰写回答