Ajout 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() :
123456789101112131415161718import 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()
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= :
1234567891011121314151617181920import 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()
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é :
12345678910111213141516171819202122import 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()
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.
12345678910111213141516171819202122import 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()
Les valeurs valides pour loc incluent :
'upper right', 'upper left', 'lower left', 'lower right', 'right', 'center left', 'center right', 'lower center', 'center'.
Vous pouvez approfondir le sujet dans la documentation de legend()
Swipe to start coding
- Étiqueter les barres les plus basses comme
'primary sector'en spécifiant l'argument mot-clé approprié. - Étiqueter les barres du milieu comme
'secondary sector'en spécifiant l'argument mot-clé approprié. - Étiqueter les barres les plus hautes comme
'tertiary sector'en spécifiant l'argument mot-clé approprié. - Placer la légende sur le côté droit, centrée verticalement.
Solution
Merci pour vos commentaires !
single
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
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()`?
Awesome!
Completion rate improved to 3.85
Ajout 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() :
123456789101112131415161718import 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()
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= :
1234567891011121314151617181920import 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()
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é :
12345678910111213141516171819202122import 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()
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.
12345678910111213141516171819202122import 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()
Les valeurs valides pour loc incluent :
'upper right', 'upper left', 'lower left', 'lower right', 'right', 'center left', 'center right', 'lower center', 'center'.
Vous pouvez approfondir le sujet dans la documentation de legend()
Swipe to start coding
- Étiqueter les barres les plus basses comme
'primary sector'en spécifiant l'argument mot-clé approprié. - Étiqueter les barres du milieu comme
'secondary sector'en spécifiant l'argument mot-clé approprié. - Étiqueter les barres les plus hautes comme
'tertiary sector'en spécifiant l'argument mot-clé approprié. - Placer la légende sur le côté droit, centrée verticalement.
Solution
Merci pour vos commentaires !
single