How to change color of lines on legend?

513 visualizaciones (últimos 30 días)
Mahdi Torabi
Mahdi Torabi el 14 de Jul. de 2018
Comentada: Walter Roberson el 1 de Mayo de 2020
Is there any way to change the color of lines in the legend AFTER plotting the graph(like using Edit\axes properties)?
  4 comentarios
Walter Roberson
Walter Roberson el 14 de Jul. de 2018
You could record the handle of the first of each type, and then pass that vector of handles as the first argument to legend().
Or you could do something like
L(1) = plot(nan, nan, 'b-');
L(2) = plot(nan, nan, 'r--');
legend(L, {'first case', 'second case'})
Mahdi Torabi
Mahdi Torabi el 14 de Jul. de 2018
Thank you so much. This solved the problem.

Iniciar sesión para comentar.

Respuesta aceptada

Mahdi Torabi
Mahdi Torabi el 14 de Jul. de 2018
Editada: Matt J el 14 de Jul. de 2018
According to the Walter answer on above my problem solved easily using :
L(1) = plot(nan, nan, 'b-');
L(2) = plot(nan, nan, 'r--');
legend(L, {'first case', 'second case'})
  2 comentarios
Matt J
Matt J el 14 de Jul. de 2018
This gives an error,
Error using legend>process_inputs (line 554)
Invalid argument. Type 'help legend' for more information.
Error in legend>make_legend (line 306)
[autoupdate,orient,location,position,children,listen,strings,propargs] = process_inputs(ha,argin); %#ok
Error in legend (line 259)
make_legend(ha,args(arg:end),version);
Walter Roberson
Walter Roberson el 15 de Jul. de 2018
Turns out you just need
hold on
to be in effect, as otherwise the second plot() clears the axes.

Iniciar sesión para comentar.

Más respuestas (1)

Matt J
Matt J el 14 de Jul. de 2018
Editada: Matt J el 14 de Jul. de 2018
This might be what Walter meant,
t=linspace(0,1,10);
L(1:2) = plot(t,exp(-t), 'r--',nan,nan,'k--');hold on
L(3:4) = plot(t,1-exp(-t), 'g^-',nan,nan,'m^-'); hold off
legend(L([2,4]), 'Red','Green')
  2 comentarios
Luiz Bacelar
Luiz Bacelar el 1 de Mayo de 2020
how to solve this? I have similar problem
Walter Roberson
Walter Roberson el 1 de Mayo de 2020
plot(nan,nan) with appropriate line style and color, once for each different thing you want to appear in the legend, recording the handle that is returned. Then when you call legend(), pass that array of handles in as the first parameter to legend()

Iniciar sesión para comentar.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by