Clear Filters
Clear Filters

How to change the size and position of subplots after defining axis handles

2 views (last 30 days)
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
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'?
Corymbiamaculata
Corymbiamaculata on 15 Mar 2022
See the first two lines of my post :)
Anyway, Jan has already answered my question - but in a comment, so I'm not sure how I can accept it to close the thread.

Sign in to comment.

Accepted Answer

Jan
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.

More Answers (0)

Categories

Find more on 2-D and 3-D Plots in Help Center and File Exchange

Products


Release

R2020a

Community Treasure Hunt

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

Start Hunting!