Contenu principal

legend

Ajouter une légende aux axes

Description

legend crée une légende avec des étiquettes descriptives pour chaque série de données tracée. Pour les étiquettes, la légende utilise le texte indiqué dans les propriétés DisplayName de la série de données. Si la propriété DisplayName est vide, la légende utilise une étiquette de la forme 'dataN'. La légende se met automatiquement à jour lorsque vous ajoutez ou supprimez une série de données sur les axes. Cette commande crée une légende dans les axes courants qui sont renvoyés par la commande gca. Si les axes courants sont vides, la légende l’est aussi. Si les axes n’existent pas, legend crée des axes cartésiens.

exemple

legend(label1,...,labelN) définit les étiquettes de la légende. Spécifiez les étiquettes sous forme de liste de vecteurs de caractères ou de chaînes de caractères, par exemple legend('Jan','Feb','Mar').

exemple

legend(labels) définit les étiquettes avec un cell array de vecteurs de caractères, un tableau de chaînes de caractères ou une matrice de caractères, par exemple legend({'Jan','Feb','Mar'}).

legend(subset,___) inclut uniquement des éléments dans la légende pour la série de données indiquée dans subset. Spécifiez subset sous forme de vecteur d’objets graphiques. Vous pouvez spécifier subset avant de spécifier les étiquettes ou sans autre argument en entrée.

exemple

legend(target,___) utilise les axes ou la visualisation indépendante spécifiés par target au lieu des axes courants. Spécifiez la cible comme premier argument en entrée.

exemple

legend(___,'Location',lcn) définit l’emplacement de la légende. Par exemple, 'Location','northeast' la positionne dans le coin supérieur droit des axes. Spécifiez l’emplacement après les autres arguments en entrée.

exemple

legend(___,'Orientation',ornt), où ornt est 'horizontal', affiche les éléments de la légende côte à côte. La valeur par défaut de ornt est 'vertical', qui empile verticalement les éléments.

exemple

legend(___,Name,Value) définit les propriétés de la légende avec un ou plusieurs arguments de type paire nom-valeur.

exemple

legend(bkgd), où bkgd est 'boxoff', supprime l’arrière-plan et le contour de la légende. La valeur par défaut de bkgd est 'boxon', qui affiche l’arrière-plan et le contour de la légende.

exemple

lgd = legend(___) renvoie l’objet Legend. Utilisez lgd pour interroger et définir les propriétés de la légende après sa création. Consultez Legend Properties pour obtenir une liste des propriétés.

legend(vsbl) contrôle la visibilité de la légende. vsbl peut être défini sur 'hide', 'show' ou 'toggle'.

legend('off') supprime la légende.

Exemples

réduire tout

Tracez deux lignes et ajoutez une légende aux axes courants. Spécifiez les étiquettes de la légende en tant qu’arguments en entrée de la fonction legend.

x = linspace(0,pi);
y1 = cos(x);
plot(x,y1)

hold on 
y2 = cos(2*x);
plot(x,y2)

legend('cos(x)','cos(2x)')

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent cos(x), cos(2x).

Si vous ajoutez ou supprimez une série de données sur les axes, la légende se met à jour en conséquence. Contrôlez l’étiquette de la nouvelle série de données en définissant la propriété DisplayName en tant que paire nom-valeur au moment de la création. Si vous ne spécifiez pas d’étiquette, la légende en utilise une de la forme 'dataN'.

Remarque : si vous ne voulez pas que la légende se mette à jour automatiquement lorsque des séries de données sont ajoutées ou supprimées sur les axes, définissez sa propriété AutoUpdate sur 'off'.

y3 = cos(3*x);
plot(x,y3,'DisplayName','cos(3x)')
hold off

Figure contains an axes object. The axes object contains 3 objects of type line. These objects represent cos(x), cos(2x), cos(3x).

Supprimez la légende.

legend('off')

Figure contains an axes object. The axes object contains 3 objects of type line. These objects represent cos(x), cos(2x), cos(3x).

Vous pouvez afficher une mosaïque de tracés avec les fonctions tiledlayout et nexttile. Utilisez la fonction tiledlayout pour créer une disposition de graphique en mosaïque de 2 x 1. Utilisez la fonction nexttile pour créer les objets axes, ax1 et ax2. Tracez des données aléatoires sur chaque axe. Ajoutez une légende au tracé supérieur en spécifiant ax1 comme premier argument en entrée de la fonction legend.

tiledlayout(2,1)
y1 = rand(3);
ax1 = nexttile; 
plot(y1)

y2 = rand(5);
ax2 = nexttile; 
plot(y2)

legend(ax1,{'Line 1','Line 2','Line 3'})

Figure contains 2 axes objects. Axes object 1 contains 3 objects of type line. These objects represent Line 1, Line 2, Line 3. Axes object 2 contains 5 objects of type line.

Tracez deux lignes. Spécifiez les étiquettes de la légende dans les commandes de tracé en définissant la propriété DisplayName avec le texte souhaité. Ajoutez ensuite une légende.

x = linspace(0,pi);
y1 = cos(x);
plot(x,y1,'DisplayName','cos(x)')

hold on 
y2 = cos(2*x);
plot(x,y2,'DisplayName','cos(2x)')
hold off

legend

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent cos(x), cos(2x).

Pour exclure une ligne de la légende, spécifiez son étiquette sous forme de vecteur ou chaîne de caractères vide. Par exemple, tracez deux ondes sinusoïdales et ajoutez une ligne zéro interrompue en appelant la fonction yline. Créez ensuite une légende et excluez la ligne zéro en spécifiant '' pour son étiquette.

x = 0:0.2:10;
plot(x,sin(x),x,sin(x+1));
hold on
yline(0,'--')
legend('sin(x)','sin(x+1)','')

Figure contains an axes object. The axes object contains 3 objects of type line, constantline. These objects represent sin(x), sin(x+1).

Tracez quatre lignes. Créez une légende dans la zone nord-ouest des axes. Spécifiez le nombre de colonnes de la légende avec la propriété NumColumns.

x = linspace(0,pi);
y1 = cos(x);
plot(x,y1)

hold on
y2 = cos(2*x);
plot(x,y2)

y3 = cos(3*x);
plot(x,y3)

y4 = cos(4*x);
plot(x,y4)
hold off

legend({'cos(x)','cos(2x)','cos(3x)','cos(4x)'},...
    'Location','northwest','NumColumns',2)

Figure contains an axes object. The axes object contains 4 objects of type line. These objects represent cos(x), cos(2x), cos(3x), cos(4x).

Par défaut, la légende ordonne les éléments de haut en bas le long de chaque colonne. Pour les ordonner de gauche à droite le long de chaque ligne, définissez la propriété Orientation sur 'horizontal'.

Depuis R2023b

Vous pouvez inverser l’ordre des éléments de la légende en définissant la propriété Direction de cette dernière. Par exemple, tracez quatre lignes et ajoutez une légende.

plot([4 5 6 7; 0 1 2 3])
lgd = legend("First","Second","Third","Fourth");

Figure contains an axes object. The axes object contains 4 objects of type line. These objects represent First, Second, Third, Fourth.

Inversez l’ordre des éléments de la légende.

lgd.Direction = "reverse";

Figure contains an axes object. The axes object contains 4 objects of type line. These objects represent First, Second, Third, Fourth.

Lorsque vous souhaitez que plusieurs tracés partagent une même légende, vous pouvez afficher celle-ci dans une vignette distincte de la mosaïque. Vous pouvez la placer à l’intérieur de la grille de vignettes ou dans une vignette externe.

Créez trois tracés dans une disposition de graphique en mosaïque.

t = tiledlayout('flow','TileSpacing','compact');
nexttile
plot(rand(5))
nexttile
plot(rand(5))
nexttile
plot(rand(5))

Figure contains 3 axes objects. Axes object 1 contains 5 objects of type line. Axes object 2 contains 5 objects of type line. Axes object 3 contains 5 objects of type line.

Ajoutez une légende partagée et déplacez-la vers la quatrième vignette.

lgd = legend;
lgd.Layout.Tile = 4;

Figure contains 3 axes objects. Axes object 1 contains 5 objects of type line. Axes object 2 contains 5 objects of type line. Axes object 3 contains 5 objects of type line.

Ajoutez ensuite un quatrième tracé et déplacez la légende vers la vignette à l’est.

nexttile
plot(rand(5))
lgd.Layout.Tile = 'east';

Figure contains 4 axes objects. Axes object 1 contains 5 objects of type line. Axes object 2 contains 5 objects of type line. Axes object 3 contains 5 objects of type line. Axes object 4 contains 5 objects of type line.

Si vous ne souhaitez pas inclure tous les objets graphiques tracés dans la légende, vous pouvez spécifiez ceux à inclure.

Tracez trois lignes et renvoyez les objets Line créés. Créez une légende incluant seulement deux des lignes. Spécifiez le premier argument en entrée sous forme de vecteur contenant les objets Line à inclure.

x = linspace(0,pi);
y1 = cos(x);
p1 = plot(x,y1);

hold on
y2 = cos(2*x);
p2 = plot(x,y2);

y3 = cos(3*x);
p3 = plot(x,y3);
hold off

legend([p1 p3],{'First','Third'})

Figure contains an axes object. The axes object contains 3 objects of type line. These objects represent First, Third.

Créez un tracé et ajoutez une légende avec un balisage LaTeX en appelant la fonction legend et en définissant la propriété Interpreter sur 'latex'. Encadrez le balisage avec des symboles dollar ($).

x = 0:0.1:10;
y = sin(x);
dy = cos(x);
plot(x,y,x,dy);
legend('$sin(x)$','$\frac{d}{dx}sin(x)$','Interpreter','latex');

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent $sin(x)$, $\frac{d}{dx}sin(x)$.

Tracez deux lignes et créez une légende. Ajoutez ensuite un titre à la légende.

x = linspace(0,pi);
y1 = cos(x);
plot(x,y1)

hold on
y2 = cos(2*x);
plot(x,y2)
hold off

lgd = legend('cos(x)','cos(2x)');
title(lgd,'My Legend Title')

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent cos(x), cos(2x).

Tracez deux lignes et créez une légende dans le coin inférieur gauche des axes. Supprimez ensuite l’arrière-plan et le contour de la légende.

x = linspace(0,pi);
y1 = cos(x);
plot(x,y1)

hold on
y2 = cos(2*x);
plot(x,y2)
hold off

legend({'cos(x)','cos(2x)'},'Location','southwest')
legend('boxoff')

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent cos(x), cos(2x).

Vous pouvez modifier divers aspects d’une légende en définissant des propriétés. Vous pouvez définir des propriétés en spécifiant des arguments nom-valeur lorsque vous appelez legend ou vous pouvez définir les propriétés de l’objet Legend après avoir appelé legend.

Tracez quatre lignes de données aléatoires. Créez une légende et affectez l’objet Legend à la variable lgd. Définissez les propriétés FontSize et TextColor avec des arguments nom-valeur.

rdm = rand(4);
plot(rdm)

lgd = legend({'Line 1','Line 2','Line 3','Line 4'},...
    'FontSize',12,'TextColor','blue');

Figure contains an axes object. The axes object contains 4 objects of type line. These objects represent Line 1, Line 2, Line 3, Line 4.

Modifiez la légende après sa création en faisant référence à lgd. Définissez la propriété NumColumns en plaçant un point entre l’objet et le nom de la propriété.

lgd.NumColumns = 2;

Figure contains an axes object. The axes object contains 4 objects of type line. These objects represent Line 1, Line 2, Line 3, Line 4.

Depuis R2024b

Vous pouvez spécifier la largeur des icônes de la légende en définissant la propriété IconColumnWidth. Par exemple, tracez une ligne et deux jeux de données dispersées.

% Create the data
x = 1:50;
sample1 = x + randn(1,50);
sample2 = (x-5) + randn(1,50); 
y = x - 10;

% Plot the data
plot(x,y)
hold on
scatter(x,sample1,"filled")
scatter(x,sample2,"filled")
hold off

Figure contains an axes object. The axes object contains 3 objects of type line, scatter.

Ajoutez une légende horizontale en haut du tracé. Comme l’icône de la ligne est plus large que les icônes des deux marqueurs, la légende contient de l’espace vide superflu autour des icônes des marqueurs.

lgd = legend("Expected","Sample 1","Sample 2");
lgd.Location = "north";
lgd.Orientation = "horizontal";

Figure contains an axes object. The axes object contains 3 objects of type line, scatter. These objects represent Expected, Sample 1, Sample 2.

Réduisez la largeur de la colonne de l’icône en définissant la propriété IconColumnWidth à 10. Ainsi, l’icône de la ligne est raccourcie et l’espace autour des marqueurs est réduit.

lgd.IconColumnWidth = 10;

Figure contains an axes object. The axes object contains 3 objects of type line, scatter. These objects represent Expected, Sample 1, Sample 2.

Arguments d'entrée

réduire tout

Étiquettes, spécifiées sous forme de liste de vecteurs de caractères ou de chaînes de caractères séparés par des virgules.

Pour exclure un élément de la légende, indiquez l’étiquette correspondante comme vecteur de caractères vide ou chaîne vide.

Pour inclure des caractères spéciaux ou des lettres grecques dans les étiquettes, utilisez le balisage TeX ou LaTeX. Pour un tableau des options, consultez la propriété Interpreter.

Pour spécifier des étiquettes qui sont des mots-clés tels que 'Location' ou 'off', utilisez un cell array de vecteurs de caractères, un tableau de chaînes de caractères ou un tableau de caractères.

Exemple : legend('Sin Function','Cos Function')

Exemple : legend("Sin Function","Cos Function")

Exemple : legend("Sample A","","Sample C")

Exemple : legend('\gamma','\sigma')

Étiquettes, spécifiées sous forme de cell array de vecteurs de caractères, de tableau de chaînes de caractères ou de tableau catégoriel.

Pour exclure un élément de la légende, spécifiez l’étiquette correspondante sous forme de vecteur de caractères vide dans le cell array ou de chaîne de caractères vide dans le tableau de chaînes de caractères.

Pour inclure des caractères spéciaux ou des lettres grecques dans les étiquettes, utilisez le balisage TeX ou LaTeX. Pour un tableau des options, consultez la propriété Interpreter.

Exemple : legend({'Sin Function','Cos Function'})

Exemple : legend(["Sin Function","Cos Function"])

Exemple : legend({'Sample A','','Sample C'})

Exemple : legend({'\gamma','\sigma'})

Exemple : legend(categorical({'Alabama','New York'}))

Séries de données à inclure dans la légende, spécifiées sous forme de vecteur d’objets graphiques.

Cible de la légende, spécifiée sous forme d’un objet Axes, d’un objet PolarAxes, d’un objet GeographicAxes ou d’une visualisation indépendante avec une propriété LegendVisible telle qu’un objet GeographicBubbleChart. Si vous ne spécifiez pas de cible, la fonction legend utilise l’objet renvoyé par la commande gca comme cible.

Les visualisations indépendantes ne supportent pas la modification de l’apparence des légendes, par exemple leur emplacement, ni le renvoi de l’objet Legend comme argument en sortie.

Emplacement de la légende par rapport aux axes, spécifié comme l’une des valeurs d’emplacement répertoriées dans le tableau suivant.

ValeurDescription
'north'À l’intérieur en haut des axes
'south'À l’intérieur en bas des axes
'east'À l’intérieur à droite des axes
'west'À l’intérieur à gauche des axes
'northeast'À l’intérieur en haut à droite des axes (valeur par défaut pour les axes 2D)
'northwest'À l’intérieur en haut à gauche des axes
'southeast'À l’intérieur en bas à droite des axes
'southwest'À l’intérieur en bas à gauche des axes
'northoutside'Au-dessus des axes
'southoutside'En dessous des axes
'eastoutside'À droite des axes
'westoutside'À gauche des axes
'northeastoutside'À l’extérieur du coin supérieur droit des axes (valeur par défaut pour les axes 3D)
'northwestoutside'À l’extérieur du coin supérieur gauche des axes
'southeastoutside'À l’extérieur du coin inférieur droit des axes
'southwestoutside'À l’extérieur du coin inférieur gauche des axes
'best'À l’intérieur des axes où il y a le moins de conflits avec les données du tracé au moment de la création de la légende. Si les données du tracé changent, vous devrez peut-être réinitialiser l’emplacement à 'best'.
'bestoutside'À l’extérieur du coin supérieur droit des axes (lorsque la légende est orientée verticalement) ou en dessous des axes (lorsque la légende est orientée horizontalement)
'layout'Vignette dans une disposition de graphique en mosaïque. Pour déplacer la légende dans une autre vignette, définissez la propriété Layout de la légende.
'none'Déterminé par la propriété Position. Utilisez la propriété Position pour afficher la légende à un emplacement personnalisé.

Exemple : legend('Location','northeastoutside')

Orientation, spécifiée sous forme d’une des valeurs suivantes :

  • 'vertical' : empile verticalement les éléments de la légende.

  • 'horizontal' : affiche les éléments de la légende côte à côte.

Exemple : legend('Orientation','horizontal')

Affichage du cadre de la légende, spécifié sous forme d’une des valeurs suivantes :

  • 'boxon' : affiche l’arrière-plan et le contour de la légende.

  • 'boxoff' : n’affiche pas l’arrière-plan ni le contour de la légende.

Exemple : legend('boxoff')

Visibilité de la légende, spécifiée sous forme d’une des valeurs suivantes :

  • 'hide' : masque la légende.

  • 'show' : affiche la légende ou en crée une si elle n’existe pas déjà.

  • 'toggle' : active/désactive la visibilité de la légende.

Exemple : legend('hide')

Arguments nom-valeur

réduire tout

Spécifiez des paires d’arguments facultatifs en tant que Name1=Value1,...,NameN=ValueN, où Name est le nom de l'argument et Value la valeur correspondante. Les arguments nom-valeur doivent apparaître après les autres arguments, mais l’ordre des paires n’a pas d’importance.

Si votre version est antérieure à la R2021a, utilisez des virgules pour séparer chaque nom et chaque valeur, et placez Name entre guillemets.

Exemple : legend({'A','B'},'TextColor','blue','FontSize',12) crée une légende avec une police bleue de 12 points.

Remarque

Les propriétés répertoriées ici ne sont qu’un sous-ensemble. Pour obtenir la liste complète, consultez Legend Properties.

Couleur du texte, spécifiée sous forme de triplet RGB, de code couleur hexadécimal, de nom de couleur ou d’abréviation. La couleur par défaut est le noir, qui a la valeur [0 0 0].

Pour une couleur personnalisée, spécifiez un triplet RGB ou un code couleur hexadécimal.

  • Un triplet RGB est un vecteur ligne à trois éléments. Ces éléments spécifient l’intensité des composants verts, rouges et bleus de la couleur. Les intensités doivent être comprises dans la plage [0,1], comme [0.4 0.6 0.7] par exemple.

  • Un code couleur hexadécimal est un string scalar ou un vecteur de caractères qui commence par un symbole dièse (#) suivi de trois ou six chiffres hexadécimaux, compris dans une plage de 0 à F. Les valeurs ne sont pas sensibles à la casse. Par conséquent, les codes couleur "#FF8800", "#ff8800", "#F80" et "#f80" sont équivalents.

Vous pouvez également spécifier certaines couleurs usuelles par leur nom. Cette table répertorie les options de couleur nommées, les triplets RGB équivalents et les codes couleur hexadécimaux.

Nom de couleurAbréviationTriplet RGBCode couleur hexadécimalApparence
"red""r"[1 0 0]"#FF0000"

Sample of the color red

"green""g"[0 1 0]"#00FF00"

Sample of the color green

"blue""b"[0 0 1]"#0000FF"

Sample of the color blue

"cyan" "c"[0 1 1]"#00FFFF"

Sample of the color cyan

"magenta""m"[1 0 1]"#FF00FF"

Sample of the color magenta

"yellow""y"[1 1 0]"#FFFF00"

Sample of the color yellow

"black""k"[0 0 0]"#000000"

Sample of the color black

"white""w"[1 1 1]"#FFFFFF"

Sample of the color white

"none"Non applicableNon applicableNon applicableAucune couleur

Cette table énumère les palettes de couleurs par défaut pour les tracés dans les thèmes clairs et sombres.

PaletteCouleurs de la palette

"gem" — Paramètre par défaut du thème clair

Avant R2025a : La plupart des tracés utilisent ces couleurs par défaut.

Sample of the "gem" color palette

"glow" — Paramètre par défaut du thème sombre

Sample of the "glow" color palette

Vous pouvez obtenir les triplets RGB et les codes couleur hexadécimaux de ces palettes à l’aide des fonctions orderedcolors et rgb2hex. Par exemple, obtenez les triplets RGB de la palette "gem" et convertissez-les en codes couleur hexadécimaux.

RGB = orderedcolors("gem");
H = rgb2hex(RGB);

Avant R2023b : Obtenez les triplets RGB à l’aide de RGB = get(groot,"FactoryAxesColorOrder").

Avant R2024a : Obtenez les codes couleur hexadécimaux à l’aide de H = compose("#%02X%02X%02X",round(RGB*255)).

Exemple : [0 0 1]

Exemple : 'blue'

Exemple : '#0000FF'

Taille de police, spécifiée sous forme de valeur scalaire supérieure à zéro en unités de points. La taille de police par défaut dépend du système d’exploitation et des paramètres régionaux.

Si vous modifiez la taille de police des axes, MATLAB® définit automatiquement la taille de police de la barre de couleurs à 90 % de celle des axes. Si vous définissez manuellement la taille de police de la barre de couleurs, la modification de la taille de police des axes n’affecte pas celle de la barre de couleurs.

Nombre de colonnes, spécifié sous forme de nombre entier positif. S’il n’y a pas suffisamment d’éléments de légende pour remplir le nombre de colonnes spécifié, le nombre de colonnes qui s’affichent peut être inférieur.

Utilisez la propriété Orientation pour contrôler si les éléments de la légende s’affichent dans l’ordre le long de chaque colonne ou de chaque ligne.

Exemple : lgd.NumColumns = 3

Arguments de sortie

réduire tout

Objet Legend. Utilisez lgd pour afficher ou modifier les propriétés de la légende après sa création.

plot(rand(3))
lgd = legend('line1','line2','line3');
lgd.FontSize = 12;
lgd.FontWeight = 'bold';

Conseils

  • Pour labelliser plus de 50 objets dans la légende, spécifiez une étiquette pour chaque objet. Sinon, legend décrit seulement les 50 premiers objets du graphique.

Algorithmes

  • Le fait d’appeler à nouveau la fonction legend ne réinitialise pas les propriétés de la légende telles que l’emplacement ou l’orientation. Si une légende existe, la fonction legend la met à jour. Un objet Axes ne peut avoir qu’une légende.

  • La légende tient compte de la visibilité des objets graphiques sur les axes. Les objets graphiques avec la propriété Visible définie sur 'off' apparaissent grisés dans la légende.

Historique des versions

Introduit avant R2006a

développer tout

Voir aussi

Fonctions

Propriétés