Change Color of Specific Legend Text (not all text)

8 Ansichten (letzte 30 Tage)
Jason Berger
Jason Berger am 21 Apr. 2016
Kommentiert: Jason Berger am 25 Apr. 2016
In R2013a, I used to be able to change the color of specific text entries in a legend using code such as:
hLegend = legend(legend_txt,...
'Location','BestOutside',...
'FontSize',14);
% set color of legend that ever exceeds threshold to red so it stands out
hKids = get(hLegend,'Children');
hText = hKids(strcmp(get(hKids,'Type'),'text'));
set(hText(flipud(mask_alert)),{'Color'},{'r'});
My legends have many entries and "mask_alert" was a logical mask indicating which specific legend text I wanted to change color. Ever since I upgraded to R2015b, this code no longer works. The 'Children' property is now empty.

Akzeptierte Antwort

Nikhil Vyas
Nikhil Vyas am 25 Apr. 2016
Instead of doing all that, you can use LaTeX to change the color of the legend text. Let's take a simple example.
x = [1 2 3 4];
y = [2 4 6 8];
z = [2 3 4 5];
plot(x, y, x, z);
legend('{\color{green}y vs x}', '{\color{blue}z vs x}');
This would give you the following graph.
You can even have multiple colors in the same text. For instance.
legend('{\color{green}C}{\color{red}O}{\color{orange}L}{\color{black}O}{\color{gray}R}', '{\color{blue}z vs x}');
The above would give you the following graph.
Hope this helped. :)

Weitere Antworten (0)

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by