Multiple lines for a single legend entry

41 visualizaciones (últimos 30 días)
Szilard Novoth
Szilard Novoth el 5 de Mayo de 2020
Editada: Szilard Novoth el 6 de Sept. de 2021
Hi!
I was wondering if it is possible to add a single legend for multiple lines, like here:
Thank you in advance!
  1 comentario
darova
darova el 5 de Mayo de 2020
I think it's impossible. One object - one legend

Iniciar sesión para comentar.

Respuesta aceptada

David Neussl
David Neussl el 3 de Sept. de 2021
Hi, i think i may have a solution for your problem. My approach was to "plot" invisible NaNs, give them the color i want and create legend entries for those NaNs.
For example: Lets say we have 6 lines (10 data points each), where the first 3 are of GROUP 1 and the last three are of GROUP 2:
data = rand(10,6);
cm = colormap('lines'); % Get default line colors
figure, hold on;
for i = 1:6
% Get index for line colors (GROUP1=1:3, GROUP2=4:6)
if i <= 3
colorindex = 1;
else
colorindex = 2;
end
% Turn HandleVisibility off to disable legend entries for these lines
plot(data(:,i), 'Color', cm(colorindex,:), 'HandleVisibility', 'off');
end
% These nans will be invisible
plot(NaN, 'DisplayName', 'GROUP 1', 'Color', cm(1,:));
plot(NaN, 'DisplayName', 'GROUP 2', 'Color', cm(2,:));
% Show legend
legend('Location', 'Best');
This then gives this plot as a result
  1 comentario
Szilard Novoth
Szilard Novoth el 6 de Sept. de 2021
Editada: Szilard Novoth el 6 de Sept. de 2021
That is a clever workaround, thank you :)
The perfect solution would be, if I could give a single legend for two (or more) different lines.
For example you have 3 red lines, but maybe I want to differentiate these lines by having one dashed and another one dotted, but still only have the legend GROUP 1
Like:
red ‘-‘, ‘:’, ‘.’ GROUP1
blue ‘-‘, ‘:’, ‘.’ GROUP2

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Legend en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by