Ajouter des étiquettes de valeur sur le graphique à barres Matplotlib

Aditya Raj 30 janvier 2023
  1. Ajouter des étiquettes de valeur sur le graphique à barres Matplotlib à l’aide de la méthode pyplot.text()
  2. Ajouter des étiquettes de valeur sur le graphique à barres Matplotlib à l’aide de la fonction pyplot.annotate()
  3. Conclusion
Ajouter des étiquettes de valeur sur le graphique à barres Matplotlib

Les graphiques à barres Matplotlib sont un bon moyen de visualiser les données en python. Dans les graphiques à barres, nous avons souvent besoin d’ajouter des étiquettes pour visualiser les données. Cet article examinera les différentes manières d’ajouter des étiquettes de valeur sur un graphique à barres Matplotlib.

Ajouter des étiquettes de valeur sur le graphique à barres Matplotlib à l’aide de la méthode pyplot.text()

Pour ajouter des étiquettes de valeur sur un graphique à barres Matplotlib, nous pouvons utiliser la fonction pyplot.text().

La fonction pyplot.text() du module Matplotlib est utilisée pour ajouter des valeurs de texte à n’importe quel endroit du graphique. La syntaxe de la fonction pyplot.text() est la suivante.

matplotlib.pyplot.text(x, y, s, fontdict=None, **kwargs)

Ici,

  • Les paramètres x et y sont les coordonnées du graphe où sera placé le texte. Le paramètre s contient la chaîne de texte.
  • Le paramètre fontdict est utilisé pour modifier des propriétés comme la police et la taille du texte. Sa valeur par défaut est None.
  • Le paramètre **kwargs représente d’autres paramètres utilisés pour décider de la position du texte dans le graphique à barres.

Dans cet article, nous utiliserons le paramètre ha pour décider de l’alignement horizontal du texte. Vous pouvez obtenir plus d’informations sur les autres paramètres de la fonction à partir de la documentation officielle de la fonction text().

Traçons maintenant un graphique à barres, puis ajoutons-y des étiquettes de valeur. Supposons que nous ayons des données sur le nombre d’élèves d’une classe dans une école des classes 1 à 10 sous la forme d’une liste comme suit.

no_of_students = [10, 24, 45, 30, 23, 56, 67, 34, 45, 50]

Ici, l’indice i représente le nombre d’élèves de la classe i+1. Pour tracer les données, nous allons créer une liste class_number qui contient des nombres de 1 à 10. Après cela, nous allons tracer le graphique à barres en utilisant la fonction pyplot.bar(). Ensuite, nous ajouterons title, xlabel et ylabel au graphique en utilisant respectivement les fonctions title(), xlabel() et ylabel().

Pour ajouter des étiquettes de valeurs, nous allons définir une fonction add_value_label(x_list,y_list). Ici, x_list et y_list sont les listes contenant des données pour l’axe des x et l’axe des y, c’est-à-dire class_number et no_of_students.

Dans la fonction add_value_label(), nous spécifierons les coordonnées des étiquettes de valeur sous la forme (x, la hauteur du graphique à barres en x) afin que l’étiquette de valeur soit ajoutée en haut du graphique à barres. La valeur de texte passée à la fonction de texte sera la hauteur du graphique à barres à x. Ici, x sera les éléments de class_number, et la hauteur du graphique à barres en x sera le nombre correspondant d’étudiants dans la classe x.

Par exemple, nous ajouterons le nombre d’étudiants dans chaque classe en tant qu’étiquette de valeur en haut du graphique à barres.

import matplotlib.pyplot as plt


def add_value_label(x_list, y_list):
    for i in range(1, len(x_list) + 1):
        plt.text(i, y_list[i - 1], y_list[i - 1])


no_of_students = [10, 24, 45, 30, 23, 56, 67, 34, 45, 50]
class_number = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
plt.bar(class_number, no_of_students)
add_value_label(class_number, no_of_students)
plt.title("No of Students in a class")
plt.xlabel("Class")
plt.ylabel("Number of Students")
plt.show()

Production :

Ajouter des étiquettes de valeur par défaut sur le graphique à barres Matplotlib à l’aide de texte

Vous remarquerez peut-être que les étiquettes de valeur ne sont pas au centre en haut du graphique à barres dans la sortie. Nous pouvons le faire en manipulant les arguments d’entrée comme indiqué dans les sections suivantes.

Ajouter des étiquettes de valeur sur le graphique à barres Matplotlib au centre de chaque barre

Pour ajouter les étiquettes de valeur sur le graphique à barres Matplotlib au centre en haut du graphique à barres, nous spécifierons l’alignement horizontal comme centre dans la fonction pyplot.text() comme suit.

import matplotlib.pyplot as plt


def add_value_label(x_list, y_list):
    for i in range(1, len(x_list) + 1):
        plt.text(i, y_list[i - 1], y_list[i - 1], ha="center")


no_of_students = [10, 24, 45, 30, 23, 56, 67, 34, 45, 50]
class_number = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
plt.bar(class_number, no_of_students)
add_value_label(class_number, no_of_students)
plt.title("No of Students in a class")
plt.xlabel("Class")
plt.ylabel("Number of Students")
plt.show()

Production :

Centrer les étiquettes de valeur ajoutée sur le graphique à barres Matplotlib à l’aide de texte

Ajouter des étiquettes de valeur sur le graphique à barres Matplotlib au milieu de la hauteur de chaque barre

Vous pouvez également ajouter des étiquettes de valeur au milieu de la hauteur de chaque barre. Pour cela, nous devons spécifier la coordonnée y dans la fonction pyplot.text() comme (la hauteur du graphique à barres à x)/2. Vous pouvez le voir dans l’exemple de code suivant.

import matplotlib.pyplot as plt


def add_value_label(x_list, y_list):
    for i in range(1, len(x_list) + 1):
        plt.text(i, y_list[i - 1] / 2, y_list[i - 1], ha="center")


no_of_students = [10, 24, 45, 30, 23, 56, 67, 34, 45, 50]
class_number = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
plt.bar(class_number, no_of_students)
add_value_label(class_number, no_of_students)
plt.title("No of Students in a class")
plt.xlabel("Class")
plt.ylabel("Number of Students")
plt.show()

Production :

Centre de hauteur Ajouter des étiquettes de valeur sur le graphique à barres Matplotlib à l’aide de texte

Ajouter des étiquettes de valeur sur le graphique à barres Matplotlib à l’aide de la fonction pyplot.annotate()

Au lieu de la fonction pyplot.text(), nous pouvons utiliser la fonction pyplot.annotate() pour ajouter des étiquettes de valeur sur un graphique à barres matplotlib. La syntaxe de la fonction pyplot.annotate() est la suivante.

matplotlib.pyplot.annotate(text, xy, *args, **kwargs)

Ici,

  • Le paramètre text est le libellé qui sera ajouté au graphique.
  • Le paramètre xy accepte un tuple (x,y)x et y sont les coordonnées où le label sera ajouté au graphe.
  • La fonction accepte de nombreux arguments différents. Cet article utilisera simplement le paramètre ha pour définir l’alignement horizontal de l’étiquette dans le graphique à barres.

Nous allons tracer le graphique à barres à l’aide de la fonction pyplot.bar(). Ensuite, nous ajouterons title, xlablel et ylabel au graphique en utilisant respectivement les fonctions title(), xlabel() et ylabel().

Pour ajouter des étiquettes de valeur sur le graphique à barres Matplotlib, nous allons définir une fonction add_value_label(x_list,y_list). Ici, x et y sont les listes contenant les données pour l’axe des x et l’axe des y. Dans la fonction add_value_label(), nous passerons les tuples créés à partir des données données pour les coordonnées x et y comme argument d’entrée au paramètre xy. Avec cela, nous passerons d’autres valeurs à la fonction annotate() pour ajouter des étiquettes de valeur sur le graphique à barres Matplotlib comme suit.

import matplotlib.pyplot as plt


def add_value_label(x_list, y_list):
    for i in range(1, len(x_list) + 1):
        plt.annotate(y_list[i - 1], (i, y_list[i - 1]))


no_of_students = [10, 24, 45, 30, 23, 56, 67, 34, 45, 50]
class_number = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
plt.bar(class_number, no_of_students)
add_value_label(class_number, no_of_students)
plt.title("No of Students in a class")
plt.xlabel("Class")
plt.ylabel("Number of Students")
plt.show()

Production :

Ajouter des étiquettes de valeur par défaut sur le graphique à barres Matplotlib à l’aide d’Annotate

Encore une fois, vous pouvez observer que les étiquettes ne sont pas alignées avec le graphique à barres. Pour les aligner, vous pouvez utiliser le paramètre d’alignement horizontal ha pour définir l’alignement suivant.

import matplotlib.pyplot as plt


def add_value_label(x_list, y_list):
    for i in range(1, len(x_list) + 1):
        plt.annotate(y_list[i - 1], (i, y_list[i - 1]), ha="center")


no_of_students = [10, 24, 45, 30, 23, 56, 67, 34, 45, 50]
class_number = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
plt.bar(class_number, no_of_students)
add_value_label(class_number, no_of_students)
plt.title("No of Students in a class")
plt.xlabel("Class")
plt.ylabel("Number of Students")
plt.show()

Production :

Centrer les étiquettes de valeur ajoutée sur le graphique à barres Matplotlib à l’aide d’Annotate

Vous pouvez également ajouter des étiquettes de valeur au milieu de la hauteur de chaque barre. Pour cela, nous devons spécifier la coordonnée y dans les tuples comme (la hauteur du graphique à barres à x)/2. Vous pouvez le voir dans l’exemple de code suivant.

import matplotlib.pyplot as plt


def add_value_label(x_list, y_list):
    for i in range(1, len(x_list) + 1):
        plt.annotate(y_list[i - 1], (i, y_list[i - 1] / 2), ha="center")


no_of_students = [10, 24, 45, 30, 23, 56, 67, 34, 45, 50]
class_number = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
plt.bar(class_number, no_of_students)
add_value_label(class_number, no_of_students)
plt.title("No of Students in a class")
plt.xlabel("Class")
plt.ylabel("Number of Students")
plt.show()

Production :

Centre de hauteur Ajouter des étiquettes de valeur sur le graphique à barres Matplotlib à l’aide d’Annotate

Conclusion

Cet article a discuté de deux manières d’ajouter des étiquettes de valeur sur un graphique à barres Matplotlib en utilisant la fonction text() et la fonction annotate(). Nous avons également vu comment nous pouvions décider de l’alignement et de la position des étiquettes en modifiant le paramètre. Vous pouvez utiliser l’une des manières décrites pour ajouter des étiquettes de valeur sur un graphique à barres Matplotlib selon votre convenance.

Auteur: Aditya Raj
Aditya Raj avatar Aditya Raj avatar

Aditya Raj is a highly skilled technical professional with a background in IT and business, holding an Integrated B.Tech (IT) and MBA (IT) from the Indian Institute of Information Technology Allahabad. With a solid foundation in data analytics, programming languages (C, Java, Python), and software environments, Aditya has excelled in various roles. He has significant experience as a Technical Content Writer for Python on multiple platforms and has interned in data analytics at Apollo Clinics. His projects demonstrate a keen interest in cutting-edge technology and problem-solving, showcasing his proficiency in areas like data mining and software development. Aditya's achievements include securing a top position in a project demonstration competition and gaining certifications in Python, SQL, and digital marketing fundamentals.

GitHub