How can I make an inset plot with log axes?

8 次查看(过去 30 天)
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.
For some reason, semilogy doesn't seem to work properly with the inset package.
Thoughts?
Mark

采纳的回答

Cedric
Cedric 2014-5-5
编辑:Cedric 2014-5-5
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 个评论
Mark
Mark 2014-5-5
That works very well, thanks a lot!
Mark
Cedric
Cedric 2014-5-5
编辑:Cedric 2014-5-5
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' )

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Two y-axis 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by