如何禁用一个图中所有子图中的轴?

How to disable axis in all subplots within one figure?

我和我的朋友想将 32 个子图绘制成一个图形。他们所有人都必须禁用他们的轴。目前我们遍历所有子图,进行计算并做

axis off

对于每个子图。我们总时间的 33% 来自那条线。有没有办法一次关闭所有子图的轴或其他更快的方法?

根据当前轴的documentation, axis off just sets the 'Visible'属性到'off'。所以你可以用

一次关闭当前图形的所有轴
set(get(gcf, 'Children'), 'Visible', 'off')

然而,上面的代码也删除了轴标题,因为不知何故它还设置了标题 Text objects 的 'Visible' 属性 为 'off'.为避免这种情况,您可以使用以下方法,删除 x 轴、y 轴和背景颜色,而不影响标题:

t = get(get(gcf, 'Children'), 'XAxis');
set([t{:}], 'Visible', 'off')
t = get(get(gcf, 'Children'), 'YAxis');
set([t{:}], 'Visible', 'off')
set(get(gcf, 'Children'), 'Color', 'none')

或者您可以按照第一种方法进行操作,然后恢复标题:

set(get(gcf, 'Children'), 'Visible', 'off')
t = get(get(gcf, 'Children'), 'Title');
set([t{:}], 'Visible', 'on')