Using a loop to print subplots
    3 vues (au cours des 30 derniers jours)
  
       Afficher commentaires plus anciens
    
    TastyPastry
      
 le 12 Oct 2015
  
    
    
    
    
    Commenté : Walter Roberson
      
      
 le 14 Oct 2015
            I want to print an 2x2 grid of plots on an axes in a GUI. I'd like for there to be multiple "pages" of these plots so a user can plot more than 4 and be able to flip through the axes using the 'visible' attribute. My code looks like this:
 for i=1:totalPlotNum
   %code to calculate which subplot and axes to plot the data on
   axesNum = ceil(i/4);
   subLoc = 4*(i/4 - floor(i/4));
   if subLoc == 0
      subLoc = 4;
   end
   %switch focus to the correct axes and subplot
   axes(printPlot.plotAxes(axesNum)
   subplot(2,2,subLoc);
   %plot
 end
printPlot.plotAxes is an array of axes objects which are the "pages" the user can flip through.
My issue is that when Matlab runs axes() and subplot() after the first iteration, the axes object at printPlot.plotAxes(axesNum) gets deleted. Then, on the second iteration, Matlab crashes to desktop because axes() is trying to focus on a deleted axes handle. How do I get Matlab to stop deleting the axes, or do I need to adjust my code such that after running subplot() once, axes() is not called with a repeated axes?
0 commentaires
Réponse acceptée
  Walter Roberson
      
      
 le 12 Oct 2015
        Call subplot once for each axes to be created and store the results in printPlot.plotAxes . After that do not call subplot inside the loop: use the axes handle you stored.
4 commentaires
Plus de réponses (0)
Voir également
Catégories
				En savoir plus sur Subplots 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!