How to change color of lines on legend?
225 次查看(过去 30 天)
显示 更早的评论
Is there any way to change the color of lines in the legend AFTER plotting the graph(like using Edit\axes properties)?
4 个评论
Walter Roberson
2018-7-14
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
2018-7-14
编辑:Matt J
2018-7-14
2 个评论
Matt J
2018-7-14
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
2018-7-15
Turns out you just need
hold on
to be in effect, as otherwise the second plot() clears the axes.
更多回答(1 个)
Matt J
2018-7-14
编辑:Matt J
2018-7-14
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')
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/191935/image.png)
2 个评论
Walter Roberson
2020-5-1
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()
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Legend 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!