使用颜色条和嵌套平铺布局

问题描述 投票:0回答:1

我正在尝试生成一些嵌套的平铺布局,并有一个与所有这些布局相关联的颜色条。

有一种方法可以将颜色条放在平铺布局的外部(此处):

但是,这对于 nested 平铺布局失败。

这是一个例子:

figure; 
tl = tiledlayout(4, 1);

for ii = 1:4
    tl2 = tiledlayout(tl, 1, ii);
    tl2.Layout.Tile = ii;
    nexttile(tl2,ii); imagesc;
end

cb = colorbar();
cb.Layout.Tile = 'east';

(这当然是一个最小的示例。在示例中,我可以将平铺布局嵌套在列而不是行中 - 但这不适合我的实际代码。)

我希望颜色条出现在所有轴的一侧。与上面的示例类似,但适用于嵌套的平铺布局。这要怎么做?


迄今为止不成功的尝试:

  • 在实例化时不允许将颜色栏的父级更改为外部平铺布局 (
    tl
    ),即使用
    cb = colorbar('Parent', tl);
    会导致错误。
  • 生成颜色条后,也不允许将颜色条的父级更改为
    tl
    (
    set(cb,'Parent',tl);
    ),因为颜色条必须与其轴具有相同的父级。
  • 更改轴和颜色条的父级会更改轴的布局(即在末尾添加
    set(gca, 'Parent', tl); set(cb, 'Parent', tl);
    )。
matlab matlab-figure colorbar
1个回答
0
投票

您可以从网格图块布局开始,并通过 span 选项利用 nexttile() 函数。颜色条也需要一些手动调整。

figure; 
tiledlayout(4, 5);
for ii = 1:4
    nexttile((ii-1)*5+ii,[1,5-ii]);
    imagesc;
end
ax=nexttile(5,[4,1]);
cbh=colorbar(ax);
ax.Visible="off";
cbh.Position(1)=ax.Position(1);
cbh.AxisLocation='in';

会给你

© www.soinside.com 2019 - 2024. All rights reserved.