Set one common Xaxis for a sublot with rows = 1 and columns = 2

18 views (last 30 days)
Hello all,
I am having difficulties setting one shared\common Xaxis label for subplot with one row and two columns [e.g., subplot(1,2,1)].
Although there are a few realted answers in the forum, none seems to work for me.
I would appreciate your help!
Thanks, Ron
  1 Comment
dpb
dpb on 31 Jul 2022
'Splain what you're after more fully -- neither subplot nor tiledlayout support sharing axes although the latter has shared title/legends. One would have to overlay the area with additional axes or draw a small-height one to add additional.
Show what you tried and what didn't please...there may be submissions on FEX but I've not looked.

Sign in to comment.

Accepted Answer

dpb
dpb on 1 Aug 2022
Edited: dpb on 1 Aug 2022
I overlooked the labels in the original Q? body and thought was to have a combination axis itself of some sort based on title -- hence the response asking for clarification.
For the actual Q? as @the cyclist mentions above, use tiledlayout instead of subplot() which has been deprecated and won't be updated further it would appear.
From the doc examples for tiledlayout --
?Display a shared title and axis labels by passing t to the title, xlabel, and ylabel functions."
t = tiledlayout(2,2,'TileSpacing','Compact');
...
title(t,'Size vs. Distance')
xlabel(t,'Distance (mm)')
ylabel(t,'Size (mm)'
  1 Comment
Ron Nativ
Ron Nativ on 1 Aug 2022
Thanks! I find the code working utilizing tiledlayout(1,2,...), as follows (e.g.,):
t = tiledlayout(1,2,'TileSpacing','Compact');
nexttile
plot(1:10,1:10)
nexttile
plot(1:10,10:19)
title(t,'Size vs. Distance')
xlabel(t,'Distance (mm)')
ylabel(t,'Size (mm)')
Ron

Sign in to comment.

More Answers (1)

the cyclist
the cyclist on 31 Jul 2022
Edited: the cyclist on 31 Jul 2022
You may find the linkaxes command useful. You can also share properties (e.g. titles, xlabels) in a tiledlayout.

Community Treasure Hunt

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

Start Hunting!