How to change the size and position of subplots after defining axis handles
3 views (last 30 days)
Show older comments
I have a figure with eight subplots, e.g.
a = subplot(4,2,1);
In each subplot, I define the main and an underlying axis to control xticklabels, more precisely to place labels between ticks (see https://se.mathworks.com/matlabcentral/answers/593956-how-to-write-in-the-middle-of-ticks ).
% Create main axis and an underlying axis to control xticklabels.
axUnder = cla(); % Underlying axis handle
ax = copyobj(axUnder, ancestor(axUnder,'figure')); % main axis handle.
Each subplot has a line plot with datetime values on the x axis:
plot(ax,x,y);
At the end of the code, I have a section specifying the size and position of subplots, e.g.
set(a, 'Position', [0.1 0.85 0.45 0.18]);
Because of introducing the 'ax' handle earlier in the code, this section no longer works - MATLAB moves and resizes blank axes instead of my plots. Does any of you know how I can specify which axes I want to move/resize? Thank you in advance!
4 Comments
Adam Danz
on 14 Mar 2022
What is 'a' in the last block of code in your question? I see where you're defining ax and axUnder but what is 'a'?
Accepted Answer
Jan
on 15 Mar 2022
[Copied from the comments]
subplot is a wrapper for an axes command defining a specific position. If you change the position later, calling subplot is a waste of time. Just call axes() directly and define the wanted position directly.
0 Comments
More Answers (0)
See Also
Categories
Find more on Axes Appearance in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!