Multiple ylabels for tiledlayout

Suppose I am drawing a 4*6 figure with tiledlayout. Now I want to let the first and the second rows of figures share the same ylabel, and so do the third and the fourth rows. I looked for solutions but found nothing useful. I tried to create two different tiledlayout on one figure, but it turns out that tiledlayout function does not allow this. Thus, is there any suggestions?

Answers (1)

Matt J
Matt J on 26 Mar 2024
Edited: Matt J on 26 Mar 2024
One approach would be to create a 2x1 tiledlayout where inside each tile you nest another tiledlayout of dimension 2x6. You can facilitate this by downloading nestedLayouts() from the File Exchange,
Example:
[ax,t,T]=nestedLayouts([2,1],[2,6]);
for i=1:numel(ax) %populate all 24 axes with plot data
plot(ax(i),rand(1,5));
end
for i=1:numel(t) %Give each outer tile its own ylabel
ylabel(t(i),"ylabel No. "+i);
end

5 Comments

Thanks for your comment. I agree that this kind of nested tiledlayout is a good solution.
Cunxin Huang
Cunxin Huang on 11 Apr 2024
Edited: Cunxin Huang on 11 Apr 2024
Hi! I found there is a problem: when we use old version MATLAB (I tried R2019b), this method will lead to the following error:
"
Error using tiledlayout
TiledChartLayout cannot be a child of TiledChartLayout.
"
Matt J
Matt J on 11 Apr 2024
Edited: Matt J on 11 Apr 2024
The answer applies to the Matlab version that you posted with your question,
Yes. But I wonder if there exists a solution for an older version like R2019b.
Matt J
Matt J on 11 Apr 2024
Edited: Matt J on 11 Apr 2024
I haven't used it myself, but there is this FEX offering,
which has a "Pick of the Week" designation to vouch for it.

Sign in to comment.

Categories

Find more on Creating, Deleting, and Querying Graphics Objects in Help Center and File Exchange

Products

Release

R2023a

Asked:

on 26 Mar 2024

Edited:

on 11 Apr 2024

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!