9
votes

MATLAB: Attribuez plusieurs couleurs au texte en légende

J'essaie de colorier le code du code dans une légende. (Puisque j'essaie de trier plusieurs parcelles dans différentes catégories, je ne peux pas simplement compter sur les couleurs de la ligne de la légende.) J'ai réussi à définir la couleur du texte pour toute la légende, mais je ne peux pas réussir à Attribuez la ligne de ligne par ligne. Est-ce possible?

Code jusqu'à présent: P>

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


0 commentaires

3 Réponses :


8
votes

Pour changer les couleurs de texte de la légende individuellement, vous devez d'abord obtenir les poignées aux objets texte, qui sont des enfants de l'objet de légende. Ensuite, vous pouvez modifier leurs couleurs de texte séparément. Voici un exemple de la façon dont vous pouvez le faire: xxx

Notez que l'ordre de couleur dans la dernière ligne est bleu puis rouge, dans l'ordre inverse de la façon dont les étiquettes sont transmis au Legend fonction. Ce qui précède vous donnera la parcelle suivante:

 Entrez la description de l'image ici


0 commentaires

9
votes

Voici le code:

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


0 commentaires

12
votes

Alors que les réponses de Yuk et Gnovice sont correctes, je voudrais souligner un fait peu connu et entièrement documenté que la fonction renvoie des poignées supplémentaires qui correspondent aux composants de la légende. De la documentation de la fonction:

[LEGEND_H, Object_H, Plot_H, Text_Strings] = Legend (...) retourne

  • légende_h - poignée des axes de légende
  • Object_h - Poignées de la ligne, des correctifs et des objets graphiques de texte utilisés dans la légende
  • Plot_H - Poignées des lignes et d'autres objets utilisés dans l'intrigue
  • Text_strings - Tableau cellulaire des chaînes de texte utilisés dans la légende

    Ces poignées vous permettent de modifier les propriétés des objets respectifs.


2 commentaires

Merci d'avoir fait remarquer cela! Je suppose que je devrais lire le fichier de documentation plus étroitement la prochaine fois.


Bonne prise, Yair. Ça va m'apprendre à complètement lire la documentation actuelle au lieu de répondre à partir de la mémoire. ;)