【发布时间】:2020-11-15 17:27:27
【问题描述】:
我和我的朋友想将 32 个子图绘制成一个图形。他们都必须禁用他们的轴。目前我们遍历所有子图,进行计算并执行
axis off
对于每个子图。我们总时间的 33% 来自这条线路。有没有办法一次关闭所有子图的轴或另一种更快的方法?
【问题讨论】:
标签: matlab matlab-figure
我和我的朋友想将 32 个子图绘制成一个图形。他们都必须禁用他们的轴。目前我们遍历所有子图,进行计算并执行
axis off
对于每个子图。我们总时间的 33% 来自这条线路。有没有办法一次关闭所有子图的轴或另一种更快的方法?
【问题讨论】:
标签: matlab matlab-figure
根据documentation,axis off只是将当前坐标区的'Visible'属性设置为'off'。因此,您可以使用
set(get(gcf, 'Children'), 'Visible', 'off')
但是,上面的代码也删除了轴标题,因为不知何故它还将标题Text 对象的'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')
【讨论】:
set(get(gcf, 'Children'), 'Visible', 'off') 删除了标题,而 àxis of` 没有。请查看编辑后的答案
title(['bla',num2str(a)]) 其中“a”表示向量的一个条目。