Last color on legend does not match last color on stem plot, after manually setting color in for loops.
2 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!

