How to set y axis limit same for 2 subplots in a figure object?

115 views (last 30 days)
I am creating a multiple figure object in a loop, I named it h. (h = figure) Each h contains two subplots. For both subplots in each h the yaxis limit needs to be same. For each h yaxis limit is different. How can I set yaxis limit for both subplots in each figure? Here is the sample structure of my code.
for feature = 1:numel(features)
h = figure;
for Tasktypedone = 1:2
subplot(1,2,Tasktypedone);
subplot(1,2,Tasktypedone);
end
maxY = 10; % maxY is generated dynamically
% set yLim = [0, maxY] for both subplots in h
end

Accepted Answer

Voss
Voss on 22 Sep 2022
Store the axes objects returned from subplot(), and then set their YLim:
features = 99;
for feature = 1:numel(features)
h = figure;
ax = zeros(1,2); % ax: 1x2 vector of axes objects
for Tasktypedone = 1:2
ax(Tasktypedone) = subplot(1,2,Tasktypedone); % store the subplot axes
end
maxY = 10;
set(ax,'YLim',[0 maxY]); % set the YLim for both axes
end
You may also want to look into linkaxes:
  1 Comment
Struggling in MATLAB
Struggling in MATLAB on 22 Sep 2022
Thank you! That's a great idea. Is there a workaround to work with the object h without storing the subplot axes. Something like:
h.yLim = [0 yMax];

Sign in to comment.

More Answers (0)

Tags

Products


Release

R2022b

Community Treasure Hunt

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

Start Hunting!