Creating subplot from saved semilog plots

13 views (last 30 days)
If I've saved plots that were generated by semilogy as files, how can I place them into a figure with subplots? Note that
does not work for figures generated by semilogy, though I do not really understand why, even after trying to read up on handle graphics.

Accepted Answer

Bruno Pop-Stefanov
Bruno Pop-Stefanov on 20 Oct 2014
This is probably because the axes scale is linear by default.
Change the 'YScale' property from 'linear' to 'log' as follows:
h1 = openfig('test1.fig','reuse'); % open figure
ax1 = gca; % get handle to axes of figure
h2 = openfig('test2.fig','reuse');
ax2 = gca;
% test1.fig and test2.fig are the names of the figure files which you would
% like to copy into multiple subplots
h3 = figure; %create new figure
s1 = subplot(2,1,1); %create and get handle to the subplot axes
s2 = subplot(2,1,2);
fig1 = get(ax1,'children'); %get handle to all the children in the figure
fig2 = get(ax2,'children');
copyobj(fig1,s1); %copy children to new parent axes i.e. the subplot axes
Add the following:
set(s1, 'YScale','log')
set(s2, 'YScale','log')
  1 Comment
Stephen Shank
Stephen Shank on 21 Oct 2014
Worked like a charm... so simple! Thanks very much!

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!