Filter löschen
Filter löschen

How can I make an inset plot with log axes?

8 Ansichten (letzte 30 Tage)
Mark
Mark am 5 Mai 2014
Bearbeitet: Cedric am 5 Mai 2014
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

Akzeptierte Antwort

Cedric
Cedric am 5 Mai 2014
Bearbeitet: Cedric am 5 Mai 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 Kommentare
Mark
Mark am 5 Mai 2014
That works very well, thanks a lot!
Mark
Cedric
Cedric am 5 Mai 2014
Bearbeitet: Cedric am 5 Mai 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' )

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Two y-axis finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by