Can subplots axes limits be edited after the plot has been created and closed, without the Property Editor?

23 views (last 30 days)
Brad on 25 Jan 2018
Commented: Brad on 26 Jan 2018
I've generated several figures (each of which contain 2 stacked subplots with a since wave in each subplot), using the following code;
% Generate some data
x = linspace(0,10);
y1 = sin(x);
y2 = sin(5*x);
% Create a figure with 2 stacked subplots; a sine wave in each one.
Figure('Name', 'Test Figure', 'Units', 'Normalized', 'OuterPosition', [0 0 1 1]);
h(1) = subplot('Position', [0.05 0.5168 0.8316 0.415]);
plot(x, y1);
h(2) = subplot('Position', [0.05 0.01 0.8316 0.36700]);
plot(x, y1);
% Save the figure and variables, then close the figure
savefig(gcf, 'A_SubplotTest.fig', 'compact');
I'm not sure how to get MATLAB to recognize the subplot axes for the upper and lower subplots. But I'd like to edit the axes of the upper subplot and just the x-axis of the lower subplot without using the property editor.
Can this be done?
Thank you.
Brad on 25 Jan 2018
Rik/Brandon: After digging a little more, it appears you are correct - the handles go away once the figures are closed. So even after re-opening the figure, it doesn't appear to help. Brandon, you mention there is definitely a way to edit the axes of individual subplots either before closing the figure or after re-opening it. Can this be done without using the property editor? If so, all I'm trying to do is edit the axes limits of the upper subplot, and the x-axis (only) limits of the lower subplot.

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 25 Jan 2018
fig = openfig('A_SubplotTest.fig');
h = findobj(fig, 'type', 'axes');
set(h(2), 'XLim', new_xlim_for_top_axes, 'YLim', new_ylim_for_top_axes');
set(h(1), 'XLim', new_xlim_for_bottom_axes);
If you wanted to you could then
savefig(fig, 'editted_A_SubplotTest.fig');

More Answers (0)

Community Treasure Hunt

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

Start Hunting!