Search code examples
matlabplotlegendtextcolorlegend-properties

MATLAB: Assign multiple colors to text in legend


I'm trying to color code text in a legend. (Since I'm trying to sort several plots into different categories, I can't just rely on the line colors in the legend.) I've managed to set the text color for the entire legend, but I can't manage to assign it line by line. Is this possible?

Code so far:

list={'Label 1','Label 2','Label 3'};
leg=legend(list);
set(leg,'Textcolor',[1 0 0])

sets the text color for the entire legend as red. I'd like to be able to make some red, and some black. I tried assigning the color array as an n x 3 matrix, but MATLAB doesn't like that very much. I also poked around the legend properties using get(leg), but I couldn't find anything else that seemed useful. Any suggestions?


Solution

  • Here is the code:

    legtxt=findobj(leg,'type','text');
    set(legtxt(1),'color','k')
    

    Just find out which legends correspond to which index.