【问题标题】:How to disable axis in all subplots within one figure?如何禁用一个图中所有子图中的轴?
【发布时间】:2020-11-15 17:27:27
【问题描述】:

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

axis off

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

【问题讨论】:

    标签: matlab matlab-figure


    【解决方案1】:

    根据documentationaxis 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')
    

    【讨论】:

    • 快多了,你。然而,我们需要每个子图的标题。可以对此进行修改以帮助解决这个问题吗?
    • 我们为每个子图分配一个标题,您的解决方案会删除它。我在评论中没有充分说明这一点。
    • @Derdesdoof 你的问题很清楚。我没有注意到 set(get(gcf, 'Children'), 'Visible', 'off') 删除了标题,而 àxis of` 没有。请查看编辑后的答案
    • 谢谢!这节省了大约 20% 的计算时间。
    • 我们可以用同样的方式分配标题吗?标题部分是字符串,部分是取自向量的整数。 title(['bla',num2str(a)]) 其中“a”表示向量的一个条目。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多