cours
Diagramme à barres Python : Maîtriser les techniques de base et les techniques plus avancées
Dans cet article, je vais vous donner un aperçu des diagrammes en barres en Python en utilisant les bibliothèques les plus connues - Matplotlib, Seaborn, Plotly, Plotnine, et Pandas. Vous pouvez regarder les images et choisir la bibliothèque qui vous convient le mieux. Pour chaque méthode, je commencerai par les bases de la création de diagrammes à barres simples, puis j'aborderai progressivement les techniques de personnalisation.
Je serai aussi complet et clair que possible, mais n'oubliez pas qu'en matière d'analyse et de science des données, les diagrammes en bâtons ne sont qu'une chose. Pour avoir une vue d'ensemble et vous entraîner avec de vrais ensembles de données, obtenir une certification très convoitée et démarrer une carrière dans le domaine, inscrivez-vous dès aujourd'hui à notre cursus Associate Data Scientist in Python.
Apprenez Python à partir de zéro
Comment réaliser un diagramme à barres en Python ?
Voyons comment créer et personnaliser des diagrammes à barres à l'aide de certaines des bibliothèques Python les plus populaires. Chaque bibliothèque offre des caractéristiques uniques et différents niveaux de personnalisation.
Créez un diagramme à barres avec Matplotlib
Je commencerai par Matplotlib, qui est une bibliothèque de traçage fondamentale en Python et qui offre de nombreuses options de personnalisation.
Diagrammes à barres de base
Pour commencer à utiliser Matplotlib, vous devez importer les bibliothèques nécessaires. Le module pyplot
de Matplotlib fournit la fonctions pour créer des graphiques. Dans cet exemple, nous utiliserons un échantillon de données montrant le nombre de personnes qui préfèrent différentes bibliothèques de visualisation. Ici, la liste library
contient les noms des bibliothèques, qui apparaissent sous forme d'étiquettes sur l'axe des x, et la liste chosen_by
contient le nombre correspondant d'enthousiastes, affiché sous forme de barres sur l'axe des y.
import matplotlib.pyplot as plt
# Number of preferences for different libraries
library = ['Matplotlib', 'Seaborn', 'Plotly', 'Plotnine']
chosen_by = [2500, 1800, 3000, 2200]
Pour créer un diagramme à barres verticales, il faut appeler la fonction plt.bar()
avec les noms des bibliothèques et les données de préférence. Je choisis la couleur skyblue
. Les fonctions plt.xlabel()
, plt.ylabel()
et plt.title()
ajoutent des étiquettes aux axes x et y et définissent un titre pour le graphique. Enfin, plt.show()
affiche le graphique.
# Vertical Bar Plot
plt.bar(library, chosen_by, color='skyblue')
plt.xlabel('Visualization Library')
plt.ylabel('Number of Enthusiasts')
plt.title('Which Visualization Library Do People Prefer?')
plt.show()
De même, vous pouvez créer un diagramme à barres horizontales à l'aide de la fonction plt.barh()
. Pour cela, j'utiliserai une couleur vert clair pour les barres.
# Horizontal Bar Plot
plt.barh(library, chosen_by, color='lightgreen')
plt.xlabel('Visualization Library')
plt.ylabel('Number of Enthusiasts')
plt.title('Which Visualization Library Do People Prefer?')
plt.show()
Personnalisations avancées
Matplotlib permet un large éventail de personnalisations, telles que l'ajout d'annotations et la personnalisation des étiquettes, titres et légendes des axes. Par exemple, vous pouvez ajouter des annotations à chaque barre en utilisant la fonction plt.text()
, qui place le texte aux coordonnées spécifiées.
plt.bar(library, chosen_by, color='skyblue')
plt.xlabel('Visualization Library')
plt.ylabel('Number of Enthusiasts')
plt.title('Which Visualization Library Do People Prefer?')
# Adding annotations
for i, value in enumerate(chosen_by):
plt.text(i, value + 5, str(value), ha='center')
plt.show()
Dans le code ci-dessus, plt.text()
est utilisé pour afficher le nombre d'enthousiastes au-dessus de chaque barre. La fonction enumerate()
fournit l'indice et la valeur de chaque barre, afin que le texte soit correctement positionné.
Diagrammes à barres groupées et empilées
Pour créer des diagrammes à barres groupées et empilées avec Matplotlib, vous pouvez utiliser des paramètres supplémentaires pour représenter des catégories multiples, comme des régions ou des données démographiques différentes. Supposons que vous disposiez de données sur la popularité des bibliothèques de visualisation dans différentes régions. Pour les diagrammes à barres groupées, vous définissez des ensembles de données distincts pour chaque région et utilisez bar_width
pour contrôler l'espacement et l'alignement des barres, en plaçant chaque groupe côte à côte pour faciliter la comparaison.
import numpy as np
# Define library names
library = ['Matplotlib', 'Seaborn', 'Plotly', 'Plotnine']
# Number of Enthusiasts for different regions
enthusiasts_north = [2000, 1500, 2500, 2000]
enthusiasts_south = [1500, 1300, 2000, 1800]
bar_width = 0.35
x = np.arange(len(library))
# Grouped Bar Plot
plt.bar(x - bar_width/2, enthusiasts_north, bar_width, label='North Region', color='skyblue')
plt.bar(x + bar_width/2, enthusiasts_south, bar_width, label='South Region', color='lightgreen')
# Adding labels and title
plt.xlabel('Visualization Library')
plt.ylabel('Number of Enthusiasts')
plt.title('Regional Preferences for Visualization Libraries (Grouped)')
plt.xticks(x, library)
plt.legend(title='Regions')
plt.show()
Dans cet exemple, la ligne x = np.arange(len(library))
crée un tableau de positions pour les barres. La fonction plt.bar()
est utilisée deux fois pour créer les barres de chaque région, et la fonction plt.xticks()
définit les étiquettes sur l'axe des x. La fonction plt.legend()
affiche une légende pour différencier les régions.
Pour un diagramme à barres empilées, vous pouvez utiliser le paramètre bottom
pour empiler un ensemble de données sur un autre. Voici comment vous pouvez visualiser le nombre d'amateurs de différentes régions, empilés pour chaque bibliothèque.
# Define library names
library = ['Matplotlib', 'Seaborn', 'Plotly', 'Plotnine']
# Number of Enthusiasts for different regions
enthusiasts_north = [2000, 1500, 2500, 2000]
enthusiasts_south = [1500, 1300, 2000, 1800]
x = np.arange(len(library))
# Stacked Bar Plot
plt.bar(x, enthusiasts_north, label='North Region', color='skyblue')
plt.bar(x, enthusiasts_south, bottom=enthusiasts_north, label='South Region', color='lightcoral')
# Adding labels and title
plt.xlabel('Visualization Library')
plt.ylabel('Number of Enthusiasts')
plt.title('Regional Preferences for Visualization Libraries (Stacked)')
plt.legend()
plt.show()
Dans ce diagramme à barres empilées, enthusiasts_south
représente les données relatives aux enthousiastes de la région Sud, tandis que enthusiasts_north
est utilisé comme données de base pour la région Nord. La fonction plt.bra()
est appelée une première fois pour créer les barres de la région Nord, puis une seconde fois pour empiler les barres de la région Sud.
Vous pouvez consulter notre cours Introduction à la visualisation de données avec Matplotlib pour une explication plus complète sur l'utilisation de la bibliothèque Python Matplotlib. Vous pouvez également consulter notre Matplotlib Cheat Sheet, qui décompose le processus en six étapes de base.
Créer des diagrammes à barres avec Seaborn
Seaborn est une bibliothèque de visualisation construite au-dessus de Matplotlib qui simplifie la création de diagrammes à barres très esthétiques.
Diagrammes à barres de base
La fonction barplot()
de Seaborn permet de créer facilement des diagrammes à barres de base avec un minimum de code. Tout d'abord, importez la bibliothèque Seaborn et créez un dictionnaire.
import seaborn as sns
data = {'Library': library, 'Chosen by': chosen_by}
Ensuite, utilisez la fonction sns.barplot()
pour créer le diagramme à barres, en spécifiant les variables x et y et la source de données. Ici, j'utilise la palette de couleurs viridis
.
sns.barplot(x='Library', y='Chosen by', data=data, palette='viridis')
plt.title('Which Visualization Library Do People Prefer?')
plt.xlabel('Visualization Library')
plt.ylabel('Number of Enthusiasts')
plt.show()
Vous pouvez décider de ne pas ajouter de valeur pour palette
et vous obtiendrez une couleur uniforme dans votre graphique ou, mieux encore, attribuer une couleur au diagramme à barres. Dans ce cas, j'utiliserai un hexcode :
sns.barplot(x='Library', y='Chosen by', data=data, color=’#5EB1FF’)
plt.title('Which Visualization Library Do People Prefer?')
plt.xlabel('Visualization Library')
plt.ylabel('Number of Enthusiasts')
plt.show()
Personnalisation avancée
Seaborn permet aussi, bien sûr, de nombreuses options de personnalisation, y compris des couleurs et des annotations. Par exemple, vous pouvez ajouter des annotations au diagramme à barres de la même manière que vous le faites dans Matplotlib.
# Customized Bar Plot
sns.barplot(x='Library', y='Chosen by', data=data, palette='viridis')
plt.xlabel('Visualization Library')
plt.ylabel('Number of Enthusiasts')
plt.title('Which Visualization Library Do People Prefer?')
# Adding annotations
for i, value in enumerate(chosen_by):
plt.text(i, value + 5, str(value), ha='center')
plt.show()
Dans cet exemple, le paramètre palette='viridis'
modifie la palette de couleurs des barres et la fonction plt.text()
ajoute des annotations à chaque barre.
Vous pouvez consulter notre cours Introduction à la visualisation de données avec Seaborn pour plus de détails. Pour que votre diagramme à barres Seaborn soit particulièrement attrayant, utilisez notre palette de couleurs Seaborn ( ) : Quick Guide to Picking Colors pour trouver de bonnes idées.
Créer des diagrammes à barres avec Plotly
Vient ensuite Plotly, une bibliothèque connue pour créer des visualisations interactives et dynamiques, notamment des diagrammes à barres.
Diagrammes à barres de base
La création d'un diagramme à barres de base avec Plotly implique l'utilisation du module graph_objects
. Nous pouvons importer le module nécessaire et créer un graphique à barres en utilisant une couleur bleu ciel pour les barres.
import plotly.graph_objects as go
fig = go.Figure(go.Bar(x=library, y=chosen_by, marker_color='skyblue'))
fig.update_layout(title='Which Visualization Library Do People Prefer?', xaxis_title='Visualization Library', yaxis_title='Number of Enthusiasts')
fig.show()
Personnalisation avancée
Plotly permet d'améliorer l'interactivité et l'apparence des diagrammes à barres. Par exemple, vous pouvez ajouter des annotations aux barres à l'aide de la fonction fig.add_annotation()
.
fig = go.Figure(go.Bar(x=library, y=chosen_by, marker_color='skyblue'))
fig.update_layout(title='Which Visualization Library Do People Prefer?', xaxis_title='Visualization Library', yaxis_title='Number of Enthusiasts')
# Adding annotations
for i, value in enumerate(chosen_by):
fig.add_annotation(x=library[i], y=value, text=str(value), showarrow=False, yshift=10)
fig.show()
Diagrammes à barres dynamiques et interactifs
Plotly peut créer des diagrammes à barres dynamiques qui se mettent à jour en temps réel, ce qui les rend idéaux pour les tableaux de bord. En utilisant Plotly Express, une interface de haut niveau pour Plotly, vous pouvez créer des diagrammes à barres interactifs avec un minimum de code.
import plotly.express as px
# Using a sample dataset from Plotly
df = px.data.gapminder().query("year == 2007")
fig = px.bar(df, x='continent', y='pop', color='continent', hover_name='country', title='Population by Continent in 2007')
fig.show()
Dans cet exemple, la fonction px.data.gapminder()
charge un échantillon de données à partir de Plotly. La fonction px.bar()
crée un diagramme à barres interactif avec les variables x et y, la couleur, le nom de survol et le titre spécifiés. Si vous voulez en savoir plus, nous avons un cours détaillé ici à DataCammp : Introduction à la visualisation de données avec Plotly.
Créer des diagrammes à barres avec Plotnine
Plotnine est une implémentation de la grammaire graphique en Python, inspirée de ggplot2 dans R. Elle permet de créer de manière déclarative des tracés complexes en combinant différents éléments de tracé.
Diagrammes à barres de base
Pour commencer avec Plotnine, importez les bibliothèques nécessaires et créez un DataFrame. Ensuite, définissez un objet ggplot
, ajoutez un calque geom_bar
et spécifiez l'esthétique.
from plotnine import ggplot, aes, geom_bar, labs
import pandas as pd
# Number of preferences for different libraries
data = pd.DataFrame({'Library': ['Matplotlib', 'Seaborn', 'Plotly', 'Plotnine'],
'Chosen by': [2500, 1800, 3000, 2200]})
# Basic Bar Plot
ggplot(data, aes(x='Library', y='Chosen by')) + geom_bar(stat='identity', fill='skyblue') + labs(title='Which Visualization Library Do People Prefer?', x='Visualization Library', y='Number of Enthusiasts')
Dans cet exemple, aes(x='Library', y='Chosen by')
définit l'esthétique des x et des y pour le tracé. La partie geom_bar(stat='identity', fill='skyblue')
crée un diagramme à barres avec une couleur de remplissage bleu ciel.
Personnalisation avancée
Vous pouvez personnaliser en utilisant l'approche en couches de Plotnine. Vous pouvez ajouter des annotations, des étiquettes d'axe, des titres et des légendes.
from plotnine import ggplot, aes, geom_bar, geom_text, labs
# Creating our Pandas DataFrame
data = pd.DataFrame({'Library': ['Matplotlib', 'Seaborn', 'Plotly', 'Plotnine'],
'Chosen by': [2500, 1800, 3000, 2200]})
# Basic Bar Plot with labels
(ggplot(data, aes(x='Library', y='Chosen by'))
+ geom_bar(stat='identity', fill='skyblue')
+ geom_text(aes(label='Chosen by'), va='bottom', size=10, nudge_y=5) # Adds labels on top of bars
+ labs(title='Which Visualization Library Do People Prefer?', x='Visualization Library', y='Number of Enthusiasts'))
Diagrammes à barres groupées et empilées
Plotnine prend également en charge les diagrammes à barres groupées et empilées. Pour les diagrammes en bâtons groupés, vous devez d'abord définir une variable catégorielle pour le groupement.
# Number of preferences for different libraries in different regions
data = pd.DataFrame({'Library': ['Matplotlib', 'Plotly', 'Plotnine', 'Seaborn'] * 2,
'Chosen by': [2000, 1500, 2500, 2000, 1500, 1300, 2000, 1800],
'Region': ['North', 'North', 'North', 'North', 'South', 'South', 'South', 'South']})
# Grouped Bar Plot
(ggplot(data, aes(x='Library', y='Chosen by', fill='Region'))
+ geom_bar(stat='identity', position='dodge')
+ labs(title='Regional Preferences for Visualization Libraries (Grouped)', x='Visualization Library', y='Number of Enthusiasts'))
Pour les diagrammes à barres empilées, vous pouvez utiliser position = 'stack'
.
# Stacked Bar Plot
(ggplot(data, aes(x='Library', y='Chosen by', fill='Region'))
+ geom_bar(stat='identity', position='stack')
+ labs(title='Regional Preferences for Visualization Libraries (Stacked)', x='Visualization Library', y='Number of Enthusiasts'))
Remarquez que dans ces exemples, position = 'dodge'
crée des barres groupées, tandis que position = 'stack'
empile les barres.
Créer des diagrammes à barres avec Pandas
Le dernier, mais non le moindre, est celui des pandas. Pandas offre un moyen pratique de créer des diagrammes en bâtons directement à partir des DataFrames, ce qui en fait une option rapide et facile pour les diagrammes de base.
Diagrammes à barres de base
Pour créer un diagramme à barres dans Pandas, vous pouvez utiliser la fonction plot.bar()
sur un DataFrame.
import pandas as pd
data = pd.DataFrame({'Library': ['Matplotlib', 'Seaborn', 'Plotly', 'Plotnine'],
'Chosen by': [2500, 1800, 3000, 2200]})
Créez ensuite un diagramme à barres à l'aide de plot.bar()
.
# Basic Bar Plot
data.plot.bar(x='Library', y='Chosen by', color='skyblue', title='Which Visualization Library Do People Prefer?')
plt.xlabel('Visualization Library')
plt.ylabel('Number of Enthusiasts')
plt.show()
Personnalisation avancée
Pandas permet de personnaliser les diagrammes à barres grâce à des paramètres supplémentaires et à l'intégration avec Matplotlib.
# Customized Bar Plot
ax = data.plot.bar(x='Library', y='Chosen by', color='skyblue', title='Which Visualization Library Do People Prefer?')
ax.set_xlabel('Visualization Library')
ax.set_ylabel('Number of Enthusiasts')
# Adding annotations
for i in ax.containers:
ax.bar_label(i, label_type='edge')
plt.show()
Dans cet exemple, ax.bar_label(i, label_type='edge')
ajoute des annotations aux barres, en affichant le numéro en haut de chaque barre.
Diagrammes à barres groupées et empilées
La création de diagrammes à barres groupées et empilées dans Pandas est simple. Pour les diagrammes à barres groupées, vous devez faire pivoter le DataFrame afin d'avoir des colonnes séparées pour chaque groupe.
# Number of preferences for different libraries in different regions
data = pd.DataFrame({'Library': ['Matplotlib', 'Seaborn', 'Plotly', 'Plotnine'],
'North Region': [2000, 1500, 2500, 2000],
'South Region': [1500, 1300, 2000, 1800]})
# Grouped Bar Plot
data.plot.bar(x='Library', y=['North Region', 'South Region'], title='Regional Preferences for Visualization Libraries (Grouped)')
plt.xlabel('Visualization Library')
plt.ylabel('Number of Enthusiasts')
plt.show()
Pour les diagrammes à barres empilées, utilisez stacked=True
.
# Stacked Bar Plot
data.plot.bar(x='Library', y=['North Region', 'South Region'], stacked=True, title='Regional Preferences for Visualization Libraries (Stacked)')
plt.xlabel('Visualization Library')
plt.ylabel('Number of Enthusiasts')
plt.show()
Meilleures pratiques pour concevoir des diagrammes à barres Python efficaces
La création de diagrammes en bâtons est simple, mais la conception de diagrammes en bâtons efficaces et perspicaces nécessite une attention particulière aux détails. Les lignes directrices suivantes vous aideront à créer des diagrammes en bâtons qui communiquent efficacement l'histoire de vos données.
- Éviter les erreurs courantes: Lorsque vous concevez des diagrammes à barres, évitez de les surcharger d'informations afin qu'ils restent clairs et efficaces. Limitez-vous à l'essentiel pour éviter le désordre. Utilisez des échelles cohérentes entre les axes. Assurez-vous que l'axe commence à zéro afin d'éviter d'induire les spectateurs en erreur par des différences exagérées.
- Choix des couleurs et des reflets: Choisissez des couleurs qui donnent du sens à vos données, comme le rouge pour les valeurs négatives ou le vert pour les valeurs positives. Conservez un schéma de couleurs cohérent entre les différentes intrigues afin d'aider le lecteur à suivre le fil de la narration. Utilisez la couleur pour attirer l'attention sur les points importants.
- Commander des barres pour plus de clarté: Organisez les barres de façon logique en fonction du contexte des données, par exemple par ordre chronologique pour les données temporelles, ou par ordre décroissant/ascendant pour mettre en évidence les tendances. Regroupez les barres apparentées et utilisez la couleur ou l'espacement pour séparer les groupes.
Conclusion
La maîtrise de la création et de la personnalisation des diagrammes à barres est une compétence essentielle pour tout professionnel des données. En suivant les lignes directrices et les meilleures pratiques décrites dans cet article, vous pouvez créer des diagrammes en bâtons clairs, informatifs et visuellement attrayants qui communiquent efficacement vos idées sur les données. Vous pourrez ainsi présenter vos données de manière plus efficace et prendre des décisions mieux informées.
Si vous souhaitez continuer à pratiquer vos capacités de visualisation de données en Python , consultez notre cours Intro to Python for Data Science, qui offre un point de départ pour les débutants, ou bien consultez notre cursus de compétences en programmation Python offre un parcours d'apprentissage complet pour maîtriser Python.
Professionnel expérimenté des données et écrivain passionné par l'autonomisation des experts en herbe dans le domaine des données.
FAQ sur le tracé des barres de Python
Qu'est-ce qu'un diagramme à barres Python et pourquoi est-il utile ?
Un diagramme en bâtons représente des données catégorielles par des bâtons rectangulaires, dont la longueur ou la hauteur correspond à la valeur de la catégorie. Il est utile pour comparer les catégories, visualiser les distributions et repérer les tendances ou les valeurs aberrantes.
Comment choisir entre un diagramme à barres vertical et horizontal de Python ?
Vous pouvez utiliser un diagramme à barres verticales pour les étiquettes courtes ou facilement lisibles, tandis que vous choisirez un diagramme à barres horizontales pour les étiquettes plus longues ou les nombreuses catégories afin d'éviter l'encombrement.
Comment puis-je personnaliser les couleurs des barres dans mon graphique ?
Vous pouvez personnaliser les couleurs des barres pour rendre votre graphique plus attrayant ou pour qu'il corresponde à un schéma de couleurs spécifique. Dans Matplotlib, utilisez le paramètre color
:
plt.bar(categories, values, color=['red', 'green', 'blue'])
plt.show()
Comment puis-je utiliser Python pour trier les barres dans mon diagramme à barres ?
Le tri des barres peut aider à mettre en évidence les catégories les plus ou les moins significatives. Vous pouvez trier vos données avant de les tracer :
data = {'Category': ['A', 'B', 'C'], 'Value': [4, 7, 1]}
df = pd.DataFrame(data).sort_values(by='Value', ascending=False)
plt.bar(df['Category'], df['Value'])
plt.show()
Puis-je créer des diagrammes à barres interactifs en Python avec Plotly ?
Oui, Plotly vous permet de créer des diagrammes à barres interactifs. Voici un exemple utilisant Plotly Express :
import plotly.express as px
data = {'Category': ['A', 'B', 'C'], 'Value': [4, 7, 1]}
fig = px.bar(data, x='Category', y='Value', title='Interactive Bar Plot')
fig.show()
Découvrez Python et les diagrammes à barres avec DataCamp
cours
Introduction to Data Visualization with Seaborn
cours
Exploratory Data Analysis in Python
blog
2022-2023 Rapport annuel DataCamp Classrooms
blog
Les 32 meilleures questions d'entretien sur AWS et leurs réponses pour 2024
blog
Q2 2023 DataCamp Donates Digest
blog
Célébration de Saghar Hazinyar : Une boursière de DataCamp Donates et une diplômée de Code to Inspire

Fereshteh Forough
4 min
blog
Nous avons fait don de bourses DataCamp Premium à un million de personnes, et ce n'est pas fini.
blog
Les 20 meilleures questions d'entretien pour les flocons de neige, à tous les niveaux

Nisha Arya Ahmed
20 min