Diagrammes à barres Matplotlib

MatplotlibBeginner
Pratiquer maintenant

Introduction

Les diagrammes à barres sont un outil fondamental en visualisation de données, utilisés pour comparer des valeurs entre différentes catégories. Ils représentent les données avec des barres rectangulaires où la longueur de la barre est proportionnelle à la valeur qu'elle représente.

Dans ce laboratoire, vous apprendrez à utiliser la bibliothèque Matplotlib en Python pour créer des diagrammes à barres. Vous commencerez par préparer les données, puis créerez des diagrammes à barres verticaux et horizontaux, personnaliserez leur apparence avec des couleurs, et enfin ajouterez une légende pour rendre votre graphique plus informatif. Toutes les visualisations seront réalisées en écrivant des scripts Python et en sauvegardant les graphiques sous forme de fichiers image, que vous pourrez ensuite visualiser directement dans l'environnement LabEx.

Préparer les listes de catégories et de valeurs

Dans cette étape, vous allez commencer par configurer les données de base pour notre diagramme à barres. Un diagramme à barres nécessite deux composantes principales : une liste de catégories pour l'axe et une liste correspondante de valeurs numériques qui déterminent la taille des barres.

Nous utiliserons un ensemble de données simple représentant les chiffres de ventes mensuelles. Tout d'abord, ouvrez le fichier main.py situé dans le répertoire ~/project depuis l'explorateur de fichiers sur la gauche.

Maintenant, ajoutez le code Python suivant au fichier main.py. Ce code importe la bibliothèque Matplotlib nécessaire et définit nos données.

import matplotlib.pyplot as plt

## Data for the bar chart
categories = ['Jan', 'Feb', 'Mar', 'Apr', 'May']
values = [320, 450, 500, 480, 600]

Décomposons ce code :

  • import matplotlib.pyplot as plt : Cette ligne importe le module pyplot de la bibliothèque matplotlib et lui donne l'alias conventionnel plt. Nous utiliserons plt pour appeler les fonctions de traçage.
  • categories = ['Jan', 'Feb', 'Mar', 'Apr', 'May'] : Cette liste contient les étiquettes pour notre axe des x. Chaque chaîne de caractères représente une catégorie.
  • values = [320, 450, 500, 480, 600] : Cette liste contient les données numériques correspondant à chaque catégorie. Par exemple, les ventes de 'Jan' sont de 320.

Après avoir ajouté le code, enregistrez le fichier main.py. Dans l'étape suivante, nous utiliserons ces données pour créer notre premier diagramme à barres.

Créer un diagramme à barres vertical avec plt.bar()

Dans cette étape, vous utiliserez les données que vous avez préparées pour créer un diagramme à barres verticales. La fonction principale pour cela est plt.bar(). Cette fonction prend les catégories pour l'axe des x et leurs valeurs correspondantes pour l'axe des y afin de dessiner les barres.

Ajoutez les lignes de code suivantes à la fin de votre fichier main.py. Ce nouveau code générera le graphique, ajoutera des étiquettes et un titre, et l'enregistrera sous forme de fichier image.

## Create the bar chart
plt.bar(categories, values)

## Add title and labels
plt.title('Monthly Sales Data')
plt.xlabel('Month')
plt.ylabel('Sales ($)')

## Save the plot to a file
plt.savefig('/home/labex/project/vertical_bar_chart.png')

print("Vertical bar chart saved as vertical_bar_chart.png")

Voici une explication du nouveau code :

  • plt.bar(categories, values) : C'est la fonction principale qui crée le diagramme à barres. Elle associe la liste categories à l'axe des x et la liste values à la hauteur des barres sur l'axe des y.
  • plt.title(), plt.xlabel(), plt.ylabel() : Ces fonctions ajoutent respectivement un titre au graphique et des étiquettes aux axes x et y, rendant le graphique plus facile à comprendre.
  • plt.savefig(...) : Comme nous sommes dans un environnement sans interface graphique (non-GUI), nous ne pouvons pas afficher le graphique directement avec plt.show(). Au lieu de cela, plt.savefig() enregistre le graphique généré dans un fichier. Nous l'enregistrons sous le nom vertical_bar_chart.png dans le répertoire ~/project.

Exécutez maintenant votre script depuis le terminal :

python3 main.py

Vous devriez voir la sortie suivante :

Vertical bar chart saved as vertical_bar_chart.png

Un nouveau fichier nommé vertical_bar_chart.png apparaîtra dans votre explorateur de fichiers. Double-cliquez dessus pour voir votre premier diagramme à barres !

Vertical bar chart

Créer un diagramme à barres horizontal avec plt.barh()

Dans cette étape, vous apprendrez à créer un diagramme à barres horizontales. Ceci est utile lorsque vous avez de longues étiquettes de catégories qui pourraient se chevaucher sur un graphique vertical. Matplotlib fournit la fonction plt.barh() à cet effet, qui fonctionne de manière similaire à plt.bar() mais dessine les barres horizontalement.

Modifiez votre fichier main.py pour utiliser plt.barh() au lieu de plt.bar(). Notez que pour plt.barh(), les paramètres sont y (catégories) et width (valeurs). Nous devons également inverser xlabel et ylabel.

Remplacez la section de traçage de votre fichier main.py par le code suivant :

## Create the horizontal bar chart
plt.barh(categories, values)

## Add title and labels
plt.title('Monthly Sales Data')
plt.xlabel('Sales ($)')
plt.ylabel('Month')

## Save the plot to a file
plt.savefig('/home/labex/project/horizontal_bar_chart.png')

print("Horizontal bar chart saved as horizontal_bar_chart.png")

Le fichier main.py complet devrait maintenant ressembler à ceci :

import matplotlib.pyplot as plt

## Data for the bar chart
categories = ['Jan', 'Feb', 'Mar', 'Apr', 'May']
values = [320, 450, 500, 480, 600]

## Create the horizontal bar chart
plt.barh(categories, values)

## Add title and labels
plt.title('Monthly Sales Data')
plt.xlabel('Sales ($)')
plt.ylabel('Month')

## Save the plot to a file
plt.savefig('/home/labex/project/horizontal_bar_chart.png')

print("Horizontal bar chart saved as horizontal_bar_chart.png")

Exécutez maintenant le script mis à jour depuis le terminal :

python3 main.py

Vous verrez cette sortie :

Horizontal bar chart saved as horizontal_bar_chart.png

Vérifiez votre répertoire de projet pour le nouveau fichier horizontal_bar_chart.png et ouvrez-le pour visualiser votre diagramme à barres horizontales.

Horizontal bar chart

Personnaliser les couleurs des barres avec le paramètre color

Dans cette étape, vous allez améliorer votre diagramme à barres en ajoutant des couleurs. Matplotlib permet de changer facilement la couleur des barres en utilisant le paramètre color dans la fonction plt.bar() ou plt.barh(). Vous pouvez définir une seule couleur pour toutes les barres ou fournir une liste de couleurs pour colorer chaque barre individuellement.

Revenons au diagramme à barres verticales et donnons à chaque barre une couleur différente. Modifiez votre fichier main.py pour inclure une liste de couleurs et la passer à la fonction plt.bar().

Votre fichier main.py doit être mis à jour comme suit :

import matplotlib.pyplot as plt

## Data for the bar chart
categories = ['Jan', 'Feb', 'Mar', 'Apr', 'May']
values = [320, 450, 500, 480, 600]
colors = ['skyblue', 'lightgreen', 'salmon', 'gold', 'orchid']

## Create the bar chart with custom colors
plt.bar(categories, values, color=colors)

## Add title and labels
plt.title('Monthly Sales Data')
plt.xlabel('Month')
plt.ylabel('Sales ($)')

## Save the plot to a file
plt.savefig('/home/labex/project/colored_bar_chart.png')

print("Colored bar chart saved as colored_bar_chart.png")

Dans ce code :

  • Nous avons défini une liste colors, où chaque nom de couleur correspond à une barre dans le graphique.
  • Nous avons passé cette liste au paramètre color dans plt.bar(categories, values, color=colors).
  • Nous avons modifié le nom du fichier de sortie en colored_bar_chart.png pour éviter d'écraser notre travail précédent.

Exécutez le script depuis le terminal :

python3 main.py

La sortie sera :

Colored bar chart saved as colored_bar_chart.png

Ouvrez le fichier nouvellement créé colored_bar_chart.png pour voir votre diagramme à barres coloré.

Colored bar chart

Ajouter une légende avec plt.legend()

Dans cette dernière étape, vous apprendrez à ajouter une légende à votre graphique. Une légende est cruciale pour expliquer ce que représentent les différents éléments d'un graphique, surtout lorsque vous tracez plusieurs ensembles de données.

Pour ajouter une légende, vous devez d'abord spécifier une label (étiquette) pour vos données de graphique. Ensuite, vous appelez la fonction plt.legend() pour afficher la légende sur le graphique.

Modifions le script main.py pour inclure une étiquette pour nos données de ventes, puis pour afficher la légende.

Mettez à jour votre fichier main.py avec le code suivant :

import matplotlib.pyplot as plt

## Data for the bar chart
categories = ['Jan', 'Feb', 'Mar', 'Apr', 'May']
values = [320, 450, 500, 480, 600]

## Create the bar chart with a label
plt.bar(categories, values, color='skyblue', label='This Year Sales')

## Add title and labels
plt.title('Monthly Sales Data')
plt.xlabel('Month')
plt.ylabel('Sales ($)')

## Add the legend
plt.legend()

## Save the plot to a file
plt.savefig('/home/labex/project/bar_chart_with_legend.png')

print("Bar chart with legend saved as bar_chart_with_legend.png")

Voici les changements :

  • Dans plt.bar(), nous avons ajouté le paramètre label='This Year Sales'. Cela attribue un nom à notre ensemble de données.
  • Nous avons ajouté l'appel plt.legend(). Cette fonction trouve tous les éléments étiquetés sur le graphique et crée une boîte de légende.
  • Nous utilisons une seule couleur 'skyblue' par souci de simplicité et enregistrons le graphique final sous le nom bar_chart_with_legend.png.

Exécutez le script une dernière fois :

python3 main.py

Vous verrez le message de confirmation final :

Bar chart with legend saved as bar_chart_with_legend.png

Ouvrez maintenant bar_chart_with_legend.png depuis l'explorateur de fichiers. Vous verrez votre diagramme à barres complet avec une légende, qui identifie correctement les barres comme "This Year Sales".

Bar chart with legend

Résumé

Félicitations pour avoir terminé ce laboratoire ! Vous avez acquis avec succès les bases de la création et de la personnalisation de diagrammes à barres avec Matplotlib.

Dans ce laboratoire, vous avez appris à :

  • Préparer les données (catégories et valeurs) pour le traçage.
  • Créer un diagramme à barres verticales en utilisant plt.bar().
  • Créer un diagramme à barres horizontales en utilisant plt.barh().
  • Personnaliser l'apparence des barres en utilisant le paramètre color.
  • Ajouter une légende descriptive à votre graphique en utilisant le paramètre label et la fonction plt.legend().

Ces compétences sont essentielles pour toute tâche d'analyse ou de visualisation de données. Vous pouvez maintenant créer des diagrammes à barres clairs et efficaces pour comparer des données catégorielles. N'hésitez pas à expérimenter davantage avec d'autres fonctionnalités de Matplotlib pour créer des graphiques encore plus sophistiqués.