Legend of graph doesn't match plot color and style
59 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
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:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/192054/image.jpeg)
What am I doing wrong?
0 comentarios
Respuesta aceptada
Chris
el 19 de Oct. de 2018
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 comentarios
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!