Displaying legend for multiple plots

4 次查看(过去 30 天)
I haven't seen this question asked yet, so I guess the solution is quite simple, but I haven't been able to find it.
I need to plot several groups of lines (each of about 10-15 lines) and display legend, but not for each of the lines seperately but only for each group.
Specificaly, I have groups of impact craters arranged by the age of the surface they are on. Each group has around20-30 craters and there are 4 groups, so I want the legend of the graph to have 4 entries, one for each group.
Can someone help me with this? Thank you in advance.

采纳的回答

Luffy
Luffy 2012-7-7
编辑:Luffy 2012-7-7
h = get(gca,'Children');
Then select handles of lines you want to add to legend.
Say h(1) is handle of a line in 1st group,
h(10) 2nd group,
h(15) 3rd
h(30) 4th
v = [h(1) h(10) h(15) h(30)]';
legend(v);
  3 个评论
Marin
Marin 2012-7-7
Excellent, thank you very much!
Luffy
Luffy 2012-7-7
You need not use hold on command that many times,just write it before for loop,after figure command

请先登录,再进行评论。

更多回答(1 个)

Luffy
Luffy 2012-7-7
编辑:Luffy 2012-7-7
a=randn(5,50);
b=randn(5,50);
c=randn(5,50);
figure;
hold on;
for i=1:5
plot(a(i,:),'.-b');
plot(b(i,:),'.-r');
plot(c(i,:),'.-g');
end
h = findobj('Color','r');
g = findobj('Color','b');
i = findobj('Color','g');
v = [h(1) g(1) i(1)];
legend(v);
% For location where your legend should appear see
doc legend
  2 个评论
Marin
Marin 2012-7-7
I see. I tought that hold on should go after every plot we wish to add. Thank you once again :)
mimi sam
mimi sam 2017-5-22
Or you can proceed as in this example (of matlab)
Plot three lines and return the chart line objects created. Then, create a legend that includes only two of the lines by specifying the first input argument as a vector of the chart line objects to include.
x = linspace(0,3*pi); y1 = sin(x); p1 = plot(x,y1);
hold on y2 = sin(x - pi/4); p2 = plot(x,y2);
y3 = sin(x - pi/2); p3 = plot(x,y3); hold off
legend([p1 p3],'First','Third')

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Legend 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by