How to show partial legend in figure

572 visualizaciones (últimos 30 días)
Aravin
Aravin el 5 de En. de 2012
Comentada: YU CHEN el 7 de Jun. de 2021
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.

Respuesta aceptada

Dr. Seis
Dr. Seis el 5 de En. de 2012
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');

Más respuestas (3)

Jon
Jon el 13 de Abr. de 2017
Editada: Jon el 13 de Abr. de 2017
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 comentarios
tuncay olcer
tuncay olcer el 10 de Nov. de 2020
This is the perfectly working approach, Thanks Jon!
YU CHEN
YU CHEN el 7 de Jun. de 2021
Perfect!Thank you very much!

Iniciar sesión para comentar.


the cyclist
the cyclist el 5 de En. de 2012
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 comentario
Sean de Wolski
Sean de Wolski el 5 de En. de 2012
+1. This should probably be added to the FAQ.

Iniciar sesión para comentar.


Patrick Kalita
Patrick Kalita el 5 de En. de 2012
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

Community Treasure Hunt

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

Start Hunting!

Translated by