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

1 visualización (últimos 30 días)
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 comentarios
Adam Danz
Adam Danz el 14 de Mzo. de 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 el 15 de Mzo. de 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.

Iniciar sesión para comentar.

Respuesta aceptada

Jan
Jan el 15 de Mzo. de 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.

Más respuestas (0)

Productos


Versión

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by