Last color on legend does not match last color on stem plot, after manually setting color in for loops.
    5 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    jdog
 el 25 de Jun. de 2024
  
    
    
    
    
    Comentada: jdog
 el 26 de Jun. de 2024
            This code generates stem plots for functions of number sequences. The last two plots require for loops to shift the sequences. The plot colors are hard coded in each loop to keep the same color. This works for the plots, but the legend shows the last two funcitons as both green when the last one should be purple. What might be causing this and is there a work-around?
x = [0,1,2,3,4,-4,-3,-2,-1,0];
y = [0,0,-1,0,1,0,-1,0,1,0,0];
longest_sequence = max(numel(x),numel(y));
figure(1)
hold on
stem(x,'LineWidth',2.0)
stem(5*x,'LineWidth',2.0)
stem(y,'LineWidth',2.0)
for n = 2:9
    stem(n-1,y(n+1),'LineWidth',2.0, 'Color','#77AC30')
end
for n = 2:9
    stem(n-1,-2*x(n-1)+3*y(n+2),'LineWidth',2.0,'Color','#7E2F8E')
end
hold off
title('Problem 1')
xlim([0 longest_sequence+1])
xticks(0:1:11)
yticks(-20:1:20)
xlabel('Time')
ylabel('Amplitude')
set(gca,'FontWeight','bold')
legend('x','5x','y','y(n+1)','-2x(n-1)+3y(n+2)')
0 comentarios
Respuesta aceptada
  Walter Roberson
      
      
 el 25 de Jun. de 2024
        for n = 2:9
    stem(n-1,y(n+1),'LineWidth',2.0, 'Color','#77AC30')
end
That generates multiple plot objects, each with green color.
legend('x','5x','y','y(n+1)','-2x(n-1)+3y(n+2)')
That assigns legends to consecutive plot objects. 
Your mistake was in thinking that the stem() within the for loop would all get grouped into the same legend.
2 comentarios
  Walter Roberson
      
      
 el 25 de Jun. de 2024
				x = [0,1,2,3,4,-4,-3,-2,-1,0];
y = [0,0,-1,0,1,0,-1,0,1,0,0];
longest_sequence = max(numel(x),numel(y));
figure(1)
hold on
H1 = stem(x,'LineWidth',2.0);
H2 = stem(5*x,'LineWidth',2.0);
H3 = stem(y,'LineWidth',2.0);
for n = 2:9
    H4 = stem(n-1,y(n+1),'LineWidth',2.0, 'Color','#77AC30');
end
for n = 2:9
    H5 = stem(n-1,-2*x(n-1)+3*y(n+2),'LineWidth',2.0,'Color','#7E2F8E');
end
hold off
title('Problem 1')
xlim([0 longest_sequence+1])
xticks(0:1:11)
yticks(-20:1:20)
xlabel('Time')
ylabel('Amplitude')
set(gca,'FontWeight','bold')
legend([H1, H2, H3, H4, H5], {'x','5x','y','y(n+1)','-2x(n-1)+3y(n+2)'})
Más respuestas (0)
Ver también
Categorías
				Más información sobre Legend 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!



