How can I make an inset plot with log axes?
4 views (last 30 days)
Show older comments
Hello,
I'm trying to make plots that have insets. I would like for either the main plot, or the inset plot to have log axes.
I'm using the inset package from, http://www.mathworks.com/matlabcentral/fileexchange/28549-figure-inset
For some reason, semilogy doesn't seem to work properly with the inset package.
Thoughts?
Mark
0 Comments
Accepted Answer
Cedric
on 5 May 2014
Edited: Cedric
on 5 May 2014
You could build the insert by yourself. Here is an example:
% - Define dummy data.
t = 0 : 0.1 : 10 ;
yModel = sin( t ) .* exp( -0.2*t ) ;
yData = yModel - 0.5 + rand( size( yModel )) ;
% - Create/init figure.
figure(1) ; clf ; hold on ; grid on ;
set( gcf, 'Color', 'White' ) ;
% - Build main plot/axes.
plot( t, yModel, 'b' )
plot( t, yData, 'rx', 'MarkerSize', 5, 'LineWidth', 2 ) ;
ylim( [min(yData), 1.8*max(yData)] ) ; % Create space for insert on top.
xlabel( '\theta [rad]' ) ;
% - Build new insert axes + plot.
axes( 'Position', [0.6,0.65,0.3,0.25] ) ;
yDiff = yData - yModel ;
plot( [t; t], [zeros(size(t)); yDiff], 'm.-', 'MarkerSize', 5 ) ;
2 Comments
Cedric
on 5 May 2014
Edited: Cedric
on 5 May 2014
You're welcome.
Note that you can change the X and Y scales of either axes, by running e.g.
set( gca, 'YScale', 'Log' ) ;
Actually, evaluate the following commands in the command line and see their outputs, and you'll understand how it works:
set( gcf )
set( gca )
set( gca, 'YScale' )
More Answers (0)
See Also
Categories
Find more on Two y-axis in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!