How to show partial legend in figure

조회 수: 550 (최근 30일)
Aravin
Aravin 2012년 1월 5일
댓글: YU CHEN 2021년 6월 7일
Dear All,
I just want to show the partial part of my legend in Figure.
For example.
plot([1:10],'Color','r','DisplayName','This one');hold on;
plot([1:2:10],'Color','b','DisplayName','This two');
plot([1:3:10],'Color','k','DisplayName','This three');
Lets say I want to display only Last two or First two or first and last legend titles with proper colors.
Could anyone suggest plz.

채택된 답변

Dr. Seis
Dr. Seis 2012년 1월 5일
To take your first example:
h = zeros(1,3);
h(1) = plot([1:10],'Color','r','DisplayName','This one');hold on;
h(2) = plot([1:2:10],'Color','b','DisplayName','This two');
h(3) = plot([1:3:10],'Color','k','DisplayName','This three'); hold off;
legend(h(2:3)); % Only display last two legend titles
If you didn't have "DisplayName", then you would have to manually add these string to the legend:
legend(h(2:3),'This two','This three');

추가 답변 (3개)

Jon
Jon 2017년 4월 13일
편집: Jon 2017년 4월 13일
Posting this here because none of the above helped me. If you don't have control of how the figure was plotted (i.e. it was buried in someone else's code), you can pull it out of the figure's children. So if you have 6 graphs and only want the legend to display a certain two, then write:
f=get(gca,'Children');
legend([f(2),f(6)],'second graph','sixth graph')
  댓글 수: 10
tuncay olcer
tuncay olcer 2020년 11월 10일
This is the perfectly working approach, Thanks Jon!
YU CHEN
YU CHEN 2021년 6월 7일
Perfect!Thank you very much!

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


the cyclist
the cyclist 2012년 1월 5일
Here's one way:
h1=plot([1:10],'Color','r','DisplayName','This one');hold on;
h2=plot([1:2:10],'Color','b','DisplayName','This two');
h3=plot([1:3:10],'Color','k','DisplayName','This three');
legend([h1 h3],{'Legend 1','Legend 3'})
  댓글 수: 1
Sean de Wolski
Sean de Wolski 2012년 1월 5일
+1. This should probably be added to the FAQ.

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


Patrick Kalita
Patrick Kalita 2012년 1월 5일
the cyclist's solution of passing plot handles to the legend command is good. But if you're feeling adventurous, you can also use the plot's Annotation property. It is described in the documentation here. For example:
h(1) = plot([1:10],'Color','r','DisplayName','This one');hold on;
h(2) = plot([1:2:10],'Color','b','DisplayName','This two');
h(3) = plot([1:3:10],'Color','k','DisplayName','This three');
set( get( get( h(2), 'Annotation'), 'LegendInformation' ), 'IconDisplayStyle', 'off' );
legend show

카테고리

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