How can I make an inset plot with log axes?
16 次查看(过去 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.
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 个评论
采纳的回答
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 个评论
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 Center 和 File Exchange 中查找有关 Two y-axis 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!