Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Travail Avec la Légende | Section
Practice
Projects
Quizzes & Challenges
Quiz
Challenges
/
Visualisation de Données avec Matplotlib

bookTravail Avec la 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

Définition de 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 left'

'upper center'

'upper right'

'center left'

'center'

'center right'

'lower left'

'lower center'

'lower right'

Vous pouvez également utiliser l’option 'best', qui place automatiquement la légende à l’emplacement présentant le moins de chevauchement avec les données tracées. De plus, l’utilisation de 'right' produit le même résultat que 'center right'.

Note
Approfondir

Vous pouvez approfondir le sujet dans legend() documentation

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 du haut 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 1. Chapitre 10
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

close

bookTravail Avec la 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

Définition de 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 left'

'upper center'

'upper right'

'center left'

'center'

'center right'

'lower left'

'lower center'

'lower right'

Vous pouvez également utiliser l’option 'best', qui place automatiquement la légende à l’emplacement présentant le moins de chevauchement avec les données tracées. De plus, l’utilisation de 'right' produit le même résultat que 'center right'.

Note
Approfondir

Vous pouvez approfondir le sujet dans legend() documentation

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 du haut 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 1. Chapitre 10
single

single

some-alt