필터 지우기
필터 지우기

Last color on legend does not match last color on stem plot, after manually setting color in for loops.

조회 수: 25 (최근 30일)
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)')

채택된 답변

Walter Roberson
Walter Roberson 2024년 6월 25일 18:15
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
Walter Roberson
Walter Roberson 2024년 6월 25일 18:16
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)'})

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Legend에 대해 자세히 알아보기

제품


릴리스

R2022b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by