Legend of graph doesn't match plot color and style

11 ビュー (過去 30 日間)
Matt
Matt 2018 年 10 月 19 日
コメント済み: Chris 2018 年 10 月 19 日
Hello,
I have searched the forum and found some info regarding the legend color not matching the lines. However, I cannot get my head around the problem in my case where I have not only different colors, but also different line styles. Here is my code:
inputNumber=3;
figure
hold on;
plot(temps(1:25001,1,1),tempFrFilt(1:25001,1,1),'-b','linewidth',2);
plot(temps(1:25001,2,1),tempFrFilt(1:25001,2,1),'-.b','linewidth',2);
plot(temps(1:25001,3,1),tempFrFilt(1:25001,3,1),'--b','linewidth',2);
plot(temps(1:25001,1,1),tempChFilt(1:25001,1,1),'-b','linewidth',2);
plot(temps(1:25001,2,1),tempChFilt(1:25001,2,1),'-.b','linewidth',2);
plot(temps(1:25001,3,1),tempChFilt(1:25001,3,1),'--b','linewidth',2);
if inputNumber>1
plot(temps(1:25001,1,2),tempFrFilt(1:25001,1,2),'-g','linewidth',2);
plot(temps(1:25001,2,2),tempFrFilt(1:25001,2,2),'-.g','linewidth',2);
plot(temps(1:25001,3,2),tempFrFilt(1:25001,3,2),'--g','linewidth',2);
plot(temps(1:25001,1,2),tempChFilt(1:25001,1,2),'-g','linewidth',2);
plot(temps(1:25001,2,2),tempChFilt(1:25001,2,2),'-.g','linewidth',2);
plot(temps(1:25001,3,2),tempChFilt(1:25001,3,2),'--g','linewidth',2);
if inputNumber==3
plot(temps(1:25001,1,3),tempFrFilt(1:25001,1,3),'-y','linewidth',2);
plot(temps(1:25001,2,3),tempFrFilt(1:25001,2,3),'-.y','linewidth',2);
plot(temps(1:25001,3,3),tempFrFilt(1:25001,3,3),'--y','linewidth',2);
plot(temps(1:25001,1,3),tempChFilt(1:25001,1,3),'-y','linewidth',2);
plot(temps(1:25001,2,3),tempChFilt(1:25001,2,3),'-.y','linewidth',2);
plot(temps(1:25001,3,3),tempChFilt(1:25001,3,3),'--y','linewidth',2);
end
end
legend(cellstr(legendNames),'Location','southwest');
A picture can be found here:
What am I doing wrong?

採用された回答

Chris
Chris 2018 年 10 月 19 日
The legend adds entries for each plot in the order that they were added to the current axes. If you want to change the order, or skip plots, you can do something like this:
P1 = plot( ... );
P2 = plot( ... );
P3 = plot( ... );
legend([P3, P1],'a label','another label')
The above example creates a legend for the third and first plot.
  6 件のコメント
Matt
Matt 2018 年 10 月 19 日
Thank you Chris, it did the trick! I've got it, but its a tricky one from Matlab.
Chris
Chris 2018 年 10 月 19 日
Cheers, glad I could help!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLegend についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by