Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Ajout de Légende | Personnalisation des Graphiques
Quizzes & Challenges
Quizzes
Challenges
/
Visualisation Ultime Avec Python

bookAjout de Légende

Lorsqu’un graphique contient plusieurs éléments, l’ajout d’une légende permet de clarifier ce que chaque élément représente. matplotlib propose plusieurs méthodes pour créer une légende.

Première option

Il est possible de définir toutes les étiquettes directement dans plt.legend() :

123456789101112131415161718
import numpy as np import matplotlib.pyplot as plt questions = ['question_1', 'question_2', 'question_3'] yes_answers = np.array([500, 240, 726]) no_answers = np.array([432, 618, 101]) answers = np.array([yes_answers, no_answers]) positions = np.arange(len(questions)) width = 0.3 for i in range(len(answers)): plt.bar(positions + width * i, answers[i], width) plt.xticks(positions + width*(len(answers)-1)/2, questions) plt.legend(['positive answers', 'negative answers']) plt.show()
copy

Ceci crée une légende dans le coin supérieur gauche en passant une liste d'étiquettes à plt.legend().

Deuxième option

Il est également possible d'attribuer des étiquettes directement dans les fonctions de tracé à l'aide du paramètre label= :

1234567891011121314151617181920
import matplotlib.pyplot as plt import numpy as np questions = ['question_1', 'question_2', 'question_3'] positions = np.arange(len(questions)) yes_answers = np.array([500, 240, 726]) no_answers = np.array([432, 618, 101]) answers = [yes_answers, no_answers] labels = ['positive answers', 'negative answers'] width = 0.3 for i in range(len(answers)): plt.bar(positions + width*i, answers[i], width, label=labels[i]) plt.xticks(positions + width*(len(answers)-1)/2, questions) plt.legend() plt.show()
copy

Ici, plt.legend() recueille automatiquement les étiquettes à partir des éléments tracés.

Troisième option

Il est également possible de définir les étiquettes à l'aide de la méthode set_label() de l'artiste retourné :

12345678910111213141516171819202122
import matplotlib.pyplot as plt import numpy as np questions = ['question_1', 'question_2', 'question_3'] positions = np.arange(len(questions)) yes_answers = np.array([500, 240, 726]) no_answers = np.array([432, 618, 101]) answers = [yes_answers, no_answers] width = 0.3 labels = ['positive answers', 'negative answers'] for i in range(len(answers)): bar = plt.bar(positions + width*i, answers[i], width) bar.set_label(labels[i]) center_positions = positions + width*(len(answers)-1)/2 plt.xticks(center_positions, questions) plt.legend(loc='upper center') plt.show()
copy

Emplacement de la légende

L'argument loc contrôle l'emplacement de la légende. La valeur par défaut 'best' demande à matplotlib de choisir automatiquement un emplacement optimal.

12345678910111213141516171819202122
import matplotlib.pyplot as plt import numpy as np questions = ['question_1', 'question_2', 'question_3'] positions = np.arange(len(questions)) yes_answers = np.array([500, 240, 726]) no_answers = np.array([432, 618, 101]) answers = [yes_answers, no_answers] labels = ['positive answers', 'negative answers'] width = 0.3 for i, label in enumerate(labels): bars = plt.bar(positions + width*i, answers[i], width) bars.set_label(label) center_positions = positions + width*(len(answers)-1)/2 plt.xticks(center_positions, questions) plt.legend(loc='upper center') plt.show()
copy

Les valeurs valides pour loc incluent : 'upper right', 'upper left', 'lower left', 'lower right', 'right', 'center left', 'center right', 'lower center', 'center'.

Note
Approfondir

Vous pouvez approfondir le sujet dans la documentation de legend()

Tâche

Swipe to start coding

  1. Étiqueter les barres les plus basses comme 'primary sector' en spécifiant l'argument mot-clé approprié.
  2. Étiqueter les barres du milieu comme 'secondary sector' en spécifiant l'argument mot-clé approprié.
  3. Étiqueter les barres les plus hautes comme 'tertiary sector' en spécifiant l'argument mot-clé approprié.
  4. Placer la légende sur le côté droit, centrée verticalement.

Solution

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 3. Chapitre 2
single

single

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Suggested prompts:

Can you explain the difference between these three legend options?

How do I customize the legend appearance further?

What happens if I don't specify the `loc` parameter in `plt.legend()`?

close

Awesome!

Completion rate improved to 3.85

bookAjout de Légende

Glissez pour afficher le menu

Lorsqu’un graphique contient plusieurs éléments, l’ajout d’une légende permet de clarifier ce que chaque élément représente. matplotlib propose plusieurs méthodes pour créer une légende.

Première option

Il est possible de définir toutes les étiquettes directement dans plt.legend() :

123456789101112131415161718
import numpy as np import matplotlib.pyplot as plt questions = ['question_1', 'question_2', 'question_3'] yes_answers = np.array([500, 240, 726]) no_answers = np.array([432, 618, 101]) answers = np.array([yes_answers, no_answers]) positions = np.arange(len(questions)) width = 0.3 for i in range(len(answers)): plt.bar(positions + width * i, answers[i], width) plt.xticks(positions + width*(len(answers)-1)/2, questions) plt.legend(['positive answers', 'negative answers']) plt.show()
copy

Ceci crée une légende dans le coin supérieur gauche en passant une liste d'étiquettes à plt.legend().

Deuxième option

Il est également possible d'attribuer des étiquettes directement dans les fonctions de tracé à l'aide du paramètre label= :

1234567891011121314151617181920
import matplotlib.pyplot as plt import numpy as np questions = ['question_1', 'question_2', 'question_3'] positions = np.arange(len(questions)) yes_answers = np.array([500, 240, 726]) no_answers = np.array([432, 618, 101]) answers = [yes_answers, no_answers] labels = ['positive answers', 'negative answers'] width = 0.3 for i in range(len(answers)): plt.bar(positions + width*i, answers[i], width, label=labels[i]) plt.xticks(positions + width*(len(answers)-1)/2, questions) plt.legend() plt.show()
copy

Ici, plt.legend() recueille automatiquement les étiquettes à partir des éléments tracés.

Troisième option

Il est également possible de définir les étiquettes à l'aide de la méthode set_label() de l'artiste retourné :

12345678910111213141516171819202122
import matplotlib.pyplot as plt import numpy as np questions = ['question_1', 'question_2', 'question_3'] positions = np.arange(len(questions)) yes_answers = np.array([500, 240, 726]) no_answers = np.array([432, 618, 101]) answers = [yes_answers, no_answers] width = 0.3 labels = ['positive answers', 'negative answers'] for i in range(len(answers)): bar = plt.bar(positions + width*i, answers[i], width) bar.set_label(labels[i]) center_positions = positions + width*(len(answers)-1)/2 plt.xticks(center_positions, questions) plt.legend(loc='upper center') plt.show()
copy

Emplacement de la légende

L'argument loc contrôle l'emplacement de la légende. La valeur par défaut 'best' demande à matplotlib de choisir automatiquement un emplacement optimal.

12345678910111213141516171819202122
import matplotlib.pyplot as plt import numpy as np questions = ['question_1', 'question_2', 'question_3'] positions = np.arange(len(questions)) yes_answers = np.array([500, 240, 726]) no_answers = np.array([432, 618, 101]) answers = [yes_answers, no_answers] labels = ['positive answers', 'negative answers'] width = 0.3 for i, label in enumerate(labels): bars = plt.bar(positions + width*i, answers[i], width) bars.set_label(label) center_positions = positions + width*(len(answers)-1)/2 plt.xticks(center_positions, questions) plt.legend(loc='upper center') plt.show()
copy

Les valeurs valides pour loc incluent : 'upper right', 'upper left', 'lower left', 'lower right', 'right', 'center left', 'center right', 'lower center', 'center'.

Note
Approfondir

Vous pouvez approfondir le sujet dans la documentation de legend()

Tâche

Swipe to start coding

  1. Étiqueter les barres les plus basses comme 'primary sector' en spécifiant l'argument mot-clé approprié.
  2. Étiqueter les barres du milieu comme 'secondary sector' en spécifiant l'argument mot-clé approprié.
  3. Étiqueter les barres les plus hautes comme 'tertiary sector' en spécifiant l'argument mot-clé approprié.
  4. Placer la légende sur le côté droit, centrée verticalement.

Solution

Switch to desktopPassez à un bureau pour une pratique réelleContinuez d'où vous êtes en utilisant l'une des options ci-dessous
Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 3. Chapitre 2
single

single

some-alt