Legend line are the same always

I'm using hold on to draw different figures and after I have all the figures I use legend('lable1','lable2','lable3') however, all the legend are used with the same color, do you know how to use the exact color for each legend ?
I searched through different post and none of them could solve my problem
figure; hold on
plot ([1:10]',rand(10),'r')
plot ([1:10]',rand(10),'b')
plot ([1:10]',rand(10),'c')

3 Kommentare

Sean de Wolski
Sean de Wolski am 9 Okt. 2013
This doesn't even run. See More in my answer below.
Niki
Niki am 10 Okt. 2013
Now it should run, but I still could not solve the problem
Sean de Wolski
Sean de Wolski am 10 Okt. 2013
Did you try the code I posted below that does exactly what you want?

Melden Sie sich an, um zu kommentieren.

Antworten (2)

sixwwwwww
sixwwwwww am 9 Okt. 2013
Bearbeitet: sixwwwwww am 9 Okt. 2013

0 Stimmen

For matrices you can do like this
a = rand(10);
b = rand(20);
c = rand(30);
plot(a), hold on
plot(b), hold on
plot(c), hold on
legends = {'a', 'b', 'c'};
Legend=legend(legends);
set(Legend,'Interpreter','none');
In case of unknown number of matrices. you can use cell array to store legend text and then follow last two lines of code. I hope this will help

2 Kommentare

Niki
Niki am 9 Okt. 2013
does not work , it is already mentioned and it is good when you want to plot a vector, but I am plotting matrix and I have three or more
Niki
Niki am 9 Okt. 2013
I just added an example of three plots above

Melden Sie sich an, um zu kommentieren.

Sean de Wolski
Sean de Wolski am 9 Okt. 2013
Bearbeitet: Sean de Wolski am 9 Okt. 2013

0 Stimmen

Pass the plot handles into legend
More
When you plot rand(10) it will plot 10 lines and give you back 10 handles. Thus you'll need to only pass one of these into legend for each color:
figure; hold on
h = plot ([1:10]',rand(10),'r'); %10 line handles
h = vertcat(h,plot([1:10]',rand(10),'b'); %add second 10 line handles
h = vertcat(h,plot([1:10]',rand(10),'c')); %add third 10 line handles
legend(h(1:10:30),'One','Two','Three'); %pass every 10th line handle into legend

1 Kommentar

Niki
Niki am 9 Okt. 2013
does not work the color of legend lines are the same

Melden Sie sich an, um zu kommentieren.

Gefragt:

am 9 Okt. 2013

Kommentiert:

am 10 Okt. 2013

Community Treasure Hunt

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

Start Hunting!

Translated by