How to name multiple plots/subplots on a loop?
    9 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Andrew
 el 1 de Abr. de 2013
  
    
    
    
    
    Comentada: Image Analyst
      
      
 el 22 de Dic. de 2020
            This loop plots 1 plot with 3 subplots on the same Figure ii times. I cannot figure out how though to label each of the 4 plot with a unique name as the loop progresses. I can use the title, but it only names one of the plots which leaves the other 3 in question to which they are.
for iv = mod((1:numel(k)),12)
    k_i = k(iv);
    figure (k_i)
    DataAnalPlot([c(1:ii,k_i) p(1:ii,k_i)],[c(1:ii,k_i+1) p(1:ii,k_i+1)],[c(1:ii,k_i+2) p(1:ii,k_i+2)],[c(1:ii,k_i+3) p(1:ii,k_i+3)]);
end
0 comentarios
Respuesta aceptada
  Image Analyst
      
      
 el 1 de Abr. de 2013
        
      Editada: Image Analyst
      
      
 el 1 de Abr. de 2013
  
      First of all, don't use figure() in the loop - use subplot() instead. In the loop you can use sprintf() to build a caption, and then use title() to display it over the plot.
Assuming iv takes on the values 1, 2, 3, and 4:
subplot(2, 2, iv);
caption = sprintf('This is plot #%d', iv);
title(caption, 'FontSize', 20);
0 comentarios
Más respuestas (1)
  Nicolas Braconi
 el 30 de Nov. de 2020
        For any future visitors I figured out that you can do it this way:  Create a cell with the title you want each plot to take, for example months, Note that the number of entries in your cell should match the number of subplots, 1 title for each plot
cellmonth={'January','February','March','April','May','June','July'...
    ,'August','September','October','November','December'};
then you write a for loop with the number of subplots you want
for i=1:12
title(cellmonth(1,j))
.
.
.
.
end
3 comentarios
  Rt Ro
 el 21 de Dic. de 2020
				Hi, thanks for the answer. could you please let me know how I can move each title to up on the left?
  Image Analyst
      
      
 el 22 de Dic. de 2020
				Try this:
for k = 1 : 12
	subplot(4, 3, k);
	caption = sprintf('Month #%d', k); % Caption changes depending on k
	title(caption, 'FontSize', 20, 'HorizontalAlignment', 'right');
end

I have no idea why you say 'right' when you want to put it on the left.  Seems like a bug.
Ver también
Categorías
				Más información sobre Subplots en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!





