Contenu principal

Ajouter une légende à un graphe

Les légendes sont utiles pour étiqueter des séries de données tracées sur un graphe. Ces exemples montrent comment créer une légende et faire des modifications courantes, notamment changer son emplacement, définir sa taille de police et ajouter un titre. Vous pouvez également créer une légende avec plusieurs colonnes ou créer une légende pour un sous-ensemble de données tracées.

Créer une légende simple

Créez une figure avec un graphique linéaire et un graphique de dispersion. Ajoutez une légende avec une description pour chaque graphique. Spécifiez les étiquettes de la légende en tant qu’entrées de la fonction legend.

figure
x1 = linspace(0,5);
y1 = sin(x1/2);
plot(x1,y1)

hold on
x2 = [0 1 2 3 4 5];
y2 = [0.2 0.3 0.6 1 0.7 0.6];
scatter(x2,y2,'filled')
hold off

legend('sin(x/2)','2016')

Figure contains an axes object. The axes object contains 2 objects of type line, scatter. These objects represent sin(x/2), 2016.

Spécifier des étiquettes avec DisplayName

Vous pouvez également spécifier les étiquettes de la légende au moyen de la propriété DisplayName. Définissez la propriété DisplayName en tant que paire nom-valeur lors de l’appel des fonctions de tracé. Ensuite, appelez la commande legend pour créer la légende.

x1 = linspace(0,5);
y1 = sin(x1/2);
plot(x1,y1,'DisplayName','sin(x/2)')

hold on
x2 = [0 1 2 3 4 5];
y2 = [0.2 0.3 0.6 1 0.7 0.6];
scatter(x2,y2,'filled','DisplayName','2016')

legend

Les légendes se mettent automatiquement à jour lorsque vous ajoutez ou supprimez une série de données. Si vous ajoutez d’autres données aux axes, utilisez la propriété DisplayName pour spécifier les étiquettes. Si vous ne définissez pas la propriété DisplayName, la légende utilise alors une étiquette de forme 'dataN'.

Ajoutez un graphique de dispersion pour les données de 2017.

x3 = [0 1 2 3 4 5];
y3 = [0.1 0.4 0.6 0.9 0.8 0.7];
scatter(x3,y3,'filled','DisplayName','2017')
drawnow
hold off

Figure contains an axes object. The axes object contains 3 objects of type line, scatter. These objects represent sin(x/2), 2016, 2017.

Personnaliser l’apparence des légendes

La fonction legend crée un objet Legend. Les objets Legend ont des propriétés qui permettent de personnaliser l’apparence de la légende, telles que les propriétés Location, Orientation, FontSize et Title. Pour obtenir la liste complète, consultez Legend Properties.

Il existe deux façons de définir les propriétés :

  • Utiliser des paires nom-valeur dans la commande legend. Dans la plupart des cas, quand vous utilisez des paires nom-valeur, vous devez spécifier les étiquettes dans un cell array, telles que legend({'label1','label2'},'FontSize',14).

  • Utiliser l’objet Legend. Vous pouvez renvoyer l’objet Legend en tant qu’argument de sortie de la fonction legend, tel que lgd = legend. Ensuite, utilisez lgd avec la notation pointée pour définir les propriétés, telles que lgd.FontSize = 14.

Emplacement et orientation des légendes

Spécifiez l’emplacement et l’orientation des légendes en définissant les propriétés Location et Orientation en tant que paires nom-valeur. Définissez l’emplacement sur l’une des huit directions cardinales ou intercardinales, soit 'northwest' dans cet exemple. Définissez l’orientation sur 'vertical' (le paramètre par défaut) ou 'horizontal', comme dans ce cas. Spécifiez les étiquettes dans un cell array.

x1 = linspace(0,5);
y1 = sin(x1/2);
plot(x1,y1)

hold on
x2 = [0 1 2 3 4 5];
y2 = [0.2 0.3 0.6 1 0.7 0.6];
scatter(x2,y2,'filled')
hold off

legend({'sin(x/2)','2016'},'Location','northwest','Orientation','horizontal')

Figure contains an axes object. The axes object contains 2 objects of type line, scatter. These objects represent sin(x/2), 2016.

Taille de police et titre des légendes

Spécifiez la taille de police et le titre des légendes en définissant les propriétés FontSize et Title. Attribuez l’objet Legend à la variable lgd. Ensuite, utilisez lgd pour modifier les propriétés au moyen de la notation pointée.

x1 = linspace(0,5);
y1 = sin(x1/2);
plot(x1,y1,'DisplayName','sin(x/2)')

hold on
x2 = [0 1 2 3 4 5];
y2 = [0.2 0.3 0.6 1 0.7 0.6];
scatter(x2,y2,'filled','DisplayName','2016')
hold off

lgd = legend;
lgd.FontSize = 14;
lgd.Title.String = '2016 Data';

Figure contains an axes object. The axes object contains 2 objects of type line, scatter. These objects represent sin(x/2), 2016.

Légendes avec plusieurs colonnes

Créez un diagramme avec six tracés linéaires. Ajoutez une légende avec deux colonnes en définissant la propriété NumColumns sur 2.

x = linspace(0,10);
y1 = sin(x);
y2 = sin(0.9*x);
y3 = sin(0.8*x);
y4 = sin(0.7*x);
y5 = sin(0.6*x);
y6 = sin(0.5*x);

plot(x,y1,'DisplayName','sin(x)')
hold on
plot(x,y2,'DisplayName','sin(0.9x)')
plot(x,y3,'DisplayName','sin(0.8x)')
plot(x,y4,'DisplayName','sin(0.7x)')
plot(x,y5,'DisplayName','sin(0.6x)')
plot(x,y6,'DisplayName','sin(0.5x)')
hold off

lgd = legend;
lgd.NumColumns = 2;

Figure contains an axes object. The axes object contains 6 objects of type line. These objects represent sin(x), sin(0.9x), sin(0.8x), sin(0.7x), sin(0.6x), sin(0.5x).

Inclure un sous-ensemble de diagrammes dans des légendes

Combinez deux diagrammes à barres et un graphique de dispersion. Créez une légende qui inclut seulement les diagrammes à barres en spécifiant les objets Bar, b1 et b2, en tant que premier argument de la fonction legend. Spécifiez les objets dans un vecteur.

x = [1 2 3 4 5];
y1 = [.2 .4 .6 .4 .2];
b1 = bar(x,y1);

hold on 
y2 = [.1 .3 .5 .3 .1];
b2 = bar(x,y2,'BarWidth',0.5);

y3 = [.2 .4 .6 .4 .2];
s = scatter(x,y3,'filled');
hold off

legend([b1 b2],'Bar Chart 1','Bar Chart 2')

Figure contains an axes object. The axes object contains 3 objects of type bar, scatter. These objects represent Bar Chart 1, Bar Chart 2.

Voir aussi

|