How can I make an inset plot with log axes?
    5 vues (au cours des 30 derniers jours)
  
       Afficher commentaires plus anciens
    
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 commentaires
Réponse acceptée
  Cedric
      
      
 le 5 Mai 2014
        
      Modifié(e) : Cedric
      
      
 le 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 commentaires
  Cedric
      
      
 le 5 Mai 2014
				
      Modifié(e) : Cedric
      
      
 le 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' )
Plus de réponses (0)
Voir également
Catégories
				En savoir plus sur Annotations dans Help Center et File Exchange
			
	Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

