cours
Les diagrammes en boîte de Python : Un guide complet pour les débutants
Vous êtes-vous déjà demandé comment mieux représenter les distributions de données numériques en Python ? Le mieux est d'apprendre à utiliser les diagrammes en boîte ! Les diagrammes en boîte sont un excellent moyen de visualiser les comparaisons de distribution entre plusieurs groupes.
Dans ce tutoriel, nous verrons ce que sont les boxplots, les différentes façons de les créer en Python, et quelques erreurs courantes de débutant.
Que sont les diagrammes en boîte de Python ?
Les diagrammes en boîte, également connus sous le nom de diagrammes en boîte et en pointillé, sont un moyen standard d'afficher la distribution des données sur la base d'un résumé en cinq nombres : minimum, premier quartile (Q1), médiane, troisième quartile (Q3) et maximum.
Les diagrammes en boîte sont particulièrement utiles pour identifier les valeurs aberrantes et comprendre la dispersion et l'asymétrie des données. Ils sont également utilisés pour comparer plusieurs groupes ou pour visualiser la distribution d'une seule variable.
Composants du diagramme en boîte
L'anatomie d'un diagramme en boîte typique comprend plusieurs composants :
- Médiane: Il s'agit de la valeur moyenne des données, représentée par une ligne à l'intérieur de la boîte.
- Boîtes: Il s'agit de l'intervalle interquartile (IQR) des données, qui représente l'intervalle entre Q1 et Q3. Les bords inférieur et supérieur représentent respectivement Q1 et Q3.
- Moustaches: Il s'agit de lignes verticales qui partent de chaque extrémité de la boîte pour représenter les valeurs minimales et maximales, à l'exclusion de toute valeur aberrante.
- Les valeurs aberrantes: Il s'agit de points situés en dehors des moustaches, considérés comme inhabituels ou extrêmes par rapport au reste des données.
- Casquettes: Il s'agit de lignes horizontales aux extrémités des moustaches, représentant les valeurs minimales et maximales, y compris les valeurs aberrantes.
Ces composants se combinent pour donner au diagramme en boîte une signification statistique et permettre des comparaisons visuelles faciles entre différents groupes de données.
Python est un outil avancé qui peut nous aider à créer des diagrammes en boîte. Dans les sections suivantes, nous examinerons différentes méthodes pour y parvenir.
Les diagrammes en boîte de Python : Guide étape par étape
Maintenant que nous avons une compréhension de base des boxplots, voyons comment les créer à l'aide de Python. De nombreuses bibliothèques en Python, telles que Matplotlib, Seaborn et Plotly, prennent en charge la création de boxplots.
1. Installation des bibliothèques nécessaires
Pour créer des boxplots en Python, il faut d'abord installer les bibliothèques nécessaires. Les principales bibliothèques nécessaires sont Matplotlib, Seaborn et Plotly.
Voici le code pour les installer :
pip install matplotlib
pip install seaborn
pip install plotly==5.22.0
2. Importation de bibliothèques et chargement de données
Après l'installation, l'étape suivante consiste à importer ces bibliothèques dans votre environnement Python.
Veillez également à charger les ensembles de données nécessaires que vous utiliserez pour vos diagrammes en boîte, le cas échéant.
#imports Matplotlib library and assigns shorthand 'plt'
import matplotlib.pyplot as plt
#imports Seaborn library and assigns shorthand 'sns'
import seaborn as sns
#imports Plotly library and assigns shorthand 'px'
import plotly.express as px
3. Création de boxplots Matplotlib
Grâce à la polyvalence de Python, la création d'un simple boxplot nécessite un minimum de code. Commençons par la bibliothèque la plus courante, Matplotlib.
1. Graphique en boîte unique de Matplotlib
Pour créer un diagramme en boîte à l'aide de Matplotlib, importez les bibliothèques nécessaires :
import matplotlib.pyplot as plt
import numpy as np
Préparons ensuite un ensemble de données simple :
# Generates some random dataset
np.random.seed(10)
data = np.random.normal(0, 1, 100)
Enfin, créons le diagramme en boîte et imprimons-le :
# Creates a boxplot
plt.boxplot(data) plt.title('Basic Boxplot') plt.show()
Voici les résultats :
2. Multiples boxplots Matplotlib
Si vous souhaitez créer des boxplots distincts dans différents sous-graphes, vous pouvez utiliser la fonction subplot
. Cela vous permet de créer plusieurs boxplots côte à côte dans une seule image.
Voici l'exemple de code complet :
import matplotlib.pyplot as plt
import numpy as np
# Generates multiple datasets
data1 = np.random.normal(0, 1, 100)
data2 = np.random.normal(1, 2, 100)
data3 = np.random.normal(2, 1.5, 100)
# Creates subplots
fig, axs = plt.subplots(1, 3, figsize=(15, 5))
# Plots Boxplot for Data 1
axs[0].boxplot(data1)
axs[0].set_title('Data 1')
axs[0].set_xlabel('Sample')
axs[0].set_ylabel('Value')
# Plots Boxplot for Data 2
axs[1].boxplot(data2)
axs[1].set_title('Data 2')
axs[1].set_xlabel('Sample')
axs[1].set_ylabel('Value')
# Plots Boxplot for Data 3
axs[2].boxplot(data3)
axs[2].set_title('Data 3')
axs[2].set_xlabel('Sample')
axs[2].set_ylabel('Value')
# Adjusts layout
plt.tight_layout()
plt.show()
Voici le graphique obtenu :
Toutefois, ces sous-graphes ne partagent pas le même axe et ne se prêtent pas à des comparaisons côte à côte entre les catégories. Pour plusieurs diagrammes en boîte avec le même axe, vous devrez créer des diagrammes en boîte groupés.
Les diagrammes en boîte groupés sont particulièrement utiles pour comparer les distributions entre plusieurs catégories. Ils permettent une compréhension plus nuancée des données. Ces comparaisons peuvent révéler des différences qui ne sont pas immédiatement évidentes à partir d'autres graphiques.
Chaque groupe est présenté côte à côte dans le même graphique, ce qui facilite la mise en évidence des variations, des tendances et des valeurs aberrantes dans les différentes sous-catégories.
Voici comment créer une intrigue secondaire groupée :
# Generates grouped data
data_group1 = [np.random.normal(0, 1, 100), np.random.normal(1, 2, 100), np.random.normal(2, 1.5, 100)]
data_group2 = [np.random.normal(0, 1, 100), np.random.normal(1, 2, 100), np.random.normal(2, 1.5, 100)]
# Combines two data groups into a dataset
data = data_group1 + data_group2
# Creates grouped boxplots
plt.boxplot(data, positions=[1, 2, 3, 5, 6, 7], labels=['G1-D1', 'G1-D2', 'G1-D3', 'G2-D1', 'G2-D2', 'G2-D3'])
plt.title('Grouped Boxplots')
plt.xlabel('Group-Dataset')
plt.ylabel('Value')
plt.show()
Voici le diagramme en boîte groupé produit par le code ci-dessus :
4. Personnaliser les boxplots de Matplotlib
Vous pouvez utiliser la personnalisation avancée de Matplotlib pour améliorer vos visualisations de données.
Des techniques telles que l'ajout de moyennes, l'ajout d'écarts types, la création de diagrammes en boîte groupés et l'utilisation de diagrammes en boîte horizontaux peuvent donner une meilleure idée de la distribution de vos données.
La personnalisation des diagrammes en boîte dans Python vous permet également d'adapter les visuels aux spécifications de votre projet.
Voici quelques façons de personnaliser les boxplots à l'aide de la bibliothèque Matplotlib :
1. Ajout d'étiquettes et de titres
Les titres et les étiquettes rendront vos graphiques plus facilement compréhensibles pour les spectateurs, qui pourront rapidement discerner la comparaison des données. L'ajout de ces éléments est simple et peut être effectué à l'aide des fonctions de Matplotlib.
Pour ajouter des étiquettes à un boxplot Matplotlib :
plt.boxplot(data)
# Adds title
plt.title('Customized Boxplot Title')
# Adds x axis label
plt.xlabel('Customized X Label')
# Adds y axis label
plt.ylabel('Customized Y Label')
plt.show()
Vous obtiendrez ainsi un diagramme en boîte étiqueté comme dans l'image ci-dessous :
2. Ajustement des couleurs des boxplots
La personnalisation des couleurs et des styles des boxplots en Python permet une présentation visuellement attrayante et claire des données. Ils vous aideront également à mettre en valeur des points de données ou des comparaisons spécifiques auprès de vos parties prenantes.
Vous pouvez modifier les couleurs des boîtes, des moustaches, des caps, des médianes et des fliers à l'aide des paramètres boxprops
, whiskerprops, capprops
, medianprops
, et flierprops
.
Voici l'exemple de code :
plt.boxplot(data, boxprops=dict(color='blue'), whiskerprops=dict(color='red'), capprops=dict(color='green'), medianprops=dict(color='orange'), flierprops=dict(markerfacecolor='red', marker='o'))
plt.show()
Cela créera différentes couleurs pour les composants de votre diagramme en boîte en fonction des paramètres définis :
3. Addition de la moyenne et de l'écart-type
Ajoutez la moyenne et l'écart-type au diagramme en boîte pour fournir davantage d'informations statistiques.
# Creates dataset
data1 = np.random.normal(0, 1, 100)
data2 = np.random.normal(1, 2, 100)
data3 = np.random.normal(2, 1.5, 100)
# Calculates the mean and standard deviations
mean = [np.mean(d) for d in data]
std_devs = [np.std(d) for d in data]
# Creates a boxplot
plt.boxplot(data, labels=['Data 1', 'Data 2', 'Data 3'])
# Adds mean as red dots
for i in range(len(mean)):
plt.plot(i + 1, mean[i], 'ro')
# Adds standard deviations as error bars
for i in range(len(std_devs)):
plt.errorbar(i + 1, mean[i], yerr=std_devs[i], fmt='o', color='red')
# Plots graph
plt.title('Boxplot with Means and Standard Deviations')
plt.xlabel('Dataset')
plt.ylabel('Value')
plt.show()
Voici le graphique obtenu :
4. Graphiques en boîte horizontaux
Les diagrammes en boîte horizontaux peuvent rendre la visualisation des données plus lisible, en particulier lorsqu'il s'agit de noms de catégories longs.
Pour ce faire, il suffit d'utiliser le paramètre vert de la fonction boxplot de Matplotlib.
# Creates horizontal boxplot
plt.boxplot(data,
labels=['Data 1', 'Data 2', 'Data 3'],
vert=False)
# Plots graph
plt.title('Horizontal Boxplot')
plt.xlabel('Value')
plt.ylabel('Dataset')
plt.show()
Voici le graphique résultant de l'exécution du code ci-dessus :
Notre cours Introduction à la visualisation de données avec Matplotlib devrait également vous aider à mieux comprendre comment créer des visualisations de données au-delà des boxplots.
Si vous avez besoin de consulter ces informations à l'avenir, voici un résumé de l'aide-mémoire pour les tracés dans Matplotlib :
5. Création de diagrammes en boîte avec Seaborn
Seaborn, construit au-dessus de Matplotlib, simplifie la création de boxplots esthétiques avec un minimum de code. Sa syntaxe simple le rend accessible à tous les niveaux de compétence, et son intégration avec d'autres bibliothèques permet une flexibilité maximale dans l'analyse des données.
1. Diagramme en boîte de Seaborn de base
Voici un guide étape par étape pour créer un diagramme en boîte de base à l'aide de Seaborn. Comme précédemment, commencez par importer les bibliothèques nécessaires.
# Imports necessary libraries
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
Préparons ensuite un ensemble de données simple :
# Generates a random dataset
np.random.seed(10)
data = np.random.normal(0, 1, 100)
Enfin, créons le diagramme en boîte et imprimons-le :
# Creates a basic boxplot
sns.boxplot(data=data)
# Adds title to the boxplot
plt.title('Basic Boxplot')
plt.show()
Voici le graphique obtenu :
2. Personnalisation avancée des seaborns
Vous pouvez personnaliser votre graphique Seaborn en utilisant les paramètres hue
, orient
, et palette
.
Voyons comment ajouter des couleurs à votre boxplot en fonction des catégories, en utilisant le paramètre hue
:
# Generate multiple datasets
data = {
'Group': ['A']*100 + ['B']*100 + ['C']*100,
'Value': np.concatenate([np.random.normal(0, 1, 100),
np.random.normal(1, 2, 100),
np.random.normal(2, 1.5, 100)])
}
df = pd.DataFrame(data)
# Create additional grouping data
df['Subgroup'] = np.random.choice(['X', 'Y'], size=300)
# Plots graph
sns.boxplot(x='Group', y='Value', data=df, hue='Subgroup', palette='Set2')
plt.title('Colored Boxplot')
plt.show()
Voici le diagramme en boîte modifié :
Pour aligner votre diagramme en boîte dans une orientation spécifique, utilisez le paramètre orient
. Pour une orientation verticale, le paramètre orient
doit être réglé sur "v". Pour l'orientation horizontale, la valeur doit être "h".
Voici le code pour un diagramme en boîte horizontal :
# Plots horizontal boxplot
sns.boxplot(data=df, orient='h', palette='Set2')
plt.title('Colored Boxplot')
plt.show()
Le code ci-dessus permet de créer un diagramme en boîte comme suit :
Pour ajouter des points de données individuels au diagramme en boîte, vous pouvez utiliser un diagramme en essaim à l'aide de la fonction swarmplot
:
# Plots boxplot
sns.boxplot(x='Group', y='Value', data=df)
# Overlays swarm plot over boxplot
sns.swarmplot(x='Group', y='Value', data=df, color='black', alpha=0.5)
plt.title('Boxplot with Swarmplot')
plt.show()
Le code ci-dessus permet de créer un diagramme en boîte comme suit :
Un diagramme en essaim comme celui-ci peut vous aider à mieux comprendre la distribution de vos données. Il complète les informations statistiques d'un diagramme en boîte pour donner à vos visiteurs une image complète de vos données.
Consultez notre cours Introduction à la visualisation de données avec Seaborn pour découvrir d'autres façons de mettre en œuvre des visualisations de données dans Seaborn.
Si vous souhaitez consulter ces informations à l'avenir, voici un aide-mémoire pour le traçage dans Seaborn:
Interprétation des résultats des diagrammes en boîte de Python
L'interprétation d'un diagramme en boîte dépend du contexte et de la question de recherche spécifique à laquelle il répond.
Cependant, certaines lignes directrices générales peuvent aider à comprendre la distribution des données représentée par le diagramme en boîte. Il s'agit notamment de
- La ligne médiane indique la valeur moyenne de l'ensemble des données.
- L'intervalle interquartile (IQR) ou la moitié centrale des valeurs se situe entre le premier quartile (Q1) et le troisième quartile (Q3).
- Les moustaches s'étendent 1,5 fois au-dessus et au-dessous de Q3 et Q1, respectivement.
- Les valeurs aberrantes sont représentées individuellement par un point ou un astérisque.
- La longueur de la boîte et des moustaches donne une idée de la dispersion des données.
- Les distributions asymétriques présentent une asymétrie dans la taille et la position de la boîte par rapport à la ligne médiane.
- Les valeurs aberrantes supérieures à 1,5 fois au-dessus ou au-dessous de Q3 et Q1 peuvent indiquer des valeurs extrêmes ou des erreurs potentielles dans la mesure des données.
Erreurs courantes à éviter lors de la création de diagrammes en boîte en Python
Même si Python permet de créer facilement des diagrammes en boîte visuellement attrayants à partir de vos ensembles de données, quelques aspects doivent être pris en compte pour éviter les visualisations trompeuses ou incorrectes.
1. Ne pas traiter les valeurs manquantes
Lors de la création d'un diagramme en boîte Python, les praticiens négligent souvent l'importance du prétraitement des données, ce qui conduit à des résultats trompeurs.
Toutes les visualisations de données nécessitent une certaine forme de nettoyage avant d'être tracées. Les diagrammes en boîte ne font pas exception et peuvent afficher les valeurs manquantes comme des valeurs aberrantes, ce qui peut fausser les résultats.
2. Mise à l'échelle incorrecte des données
En outre, les utilisateurs ne parviennent pas toujours à mettre les données à l'échelle de manière appropriée, ce qui peut donner lieu à un diagramme en boîte faussé qui représente mal les véritables caractéristiques de l'ensemble de données. La mise à l'échelle permet de s'assurer que les caractéristiques contribuent de manière égale à l'analyse.
3. Ne pas traiter les valeurs aberrantes
Enfin, les analystes peuvent négliger d'examiner et de traiter soigneusement les valeurs aberrantes avant de les tracer. Un mauvais traitement des valeurs aberrantes peut fausser l'interprétation, d'où l'importance de distinguer les vraies valeurs aberrantes des erreurs ou anomalies dans la collecte des données.
Essayez d'utiliser cet aide-mémoire lorsque vous créez des visualisations de données:
Réflexions finales
Les diagrammes en boîte sont un outil précieux pour visualiser les distributions de données et les comparer entre catégories.
En Python, vous pouvez utiliser Matplotlib, Seaborn ou Plotly pour créer rapidement des boxplots sans trop coder. DataCamp propose des cours complets pour chacun de ces outils :
- Introduction à la visualisation de données avec Matplotlib
- Introduction à la visualisation de données avec Seaborn
- Introduction à la visualisation de données avec Plotly
Que diriez-vous d'en savoir plus sur la visualisation de données à l'aide de Python ? Alors le cursus de compétences Visualisation de données avec Python vous serait grandement utile !
FAQ
Les diagrammes en boîte peuvent-ils être utilisés pour des données non numériques ?
Non, les diagrammes en boîte sont explicitement conçus pour les données numériques. Ils représentent la distribution d'un ensemble de données sur la base d'un résumé en cinq nombres (minimum, premier quartile, médiane, troisième quartile et maximum), qui nécessite des valeurs numériques. Pour les données non numériques, d'autres techniques de visualisation telles que les diagrammes à barres ou les diagrammes circulaires sont plus appropriées.
Comment interpréter la présence de valeurs aberrantes multiples dans un diagramme en boîte ?
Des valeurs aberrantes multiples dans un diagramme en boîte indiquent plusieurs points de données significativement différents du reste de l'ensemble de données. Cela pourrait suggérer la présence d'une variabilité ou d'observations inhabituelles qui pourraient nécessiter un examen plus approfondi. Les valeurs aberrantes peuvent être dues à des erreurs dans la collecte des données, à des variations naturelles ou à des différences significatives entre les sous-groupes au sein des données.
Puis-je utiliser des diagrammes en boîte pour comparer la distribution des données dans plusieurs catégories ?
Oui, les diagrammes en boîte sont excellents pour comparer les distributions dans différentes catégories. Vous pouvez placer des diagrammes en boîte côte à côte pour différentes catégories afin de comparer leurs médianes, leurs intervalles interquartiles et la présence de valeurs aberrantes. Cela permet d'identifier les différences et les similitudes dans la répartition des différents groupes.
Quels sont les pièges les plus courants à éviter lors de l'interprétation des diagrammes en boîte ?
Lorsque vous interprétez des diagrammes en boîte, évitez les pièges suivants :
- Ignorer le contexte des valeurs aberrantes : Les valeurs aberrantes n'indiquent pas toujours des erreurs, mais peuvent être des variations significatives.
- Interprétation erronée de la médiane comme étant la moyenne : La médiane est la valeur moyenne, et non la moyenne, et est moins affectée par les valeurs aberrantes.
- Négliger l'importance de la taille de l'échantillon : Des échantillons de petite taille peuvent donner lieu à des diagrammes en boîte trompeurs. Assurez-vous que la taille de vos données est suffisante pour permettre une interprétation fiable.
Comment créer des diagrammes en boîte interactifs en Python ?
Pour créer des boxplots interactifs en Python, vous pouvez utiliser des bibliothèques comme Plotly ou Bokeh. Ces bibliothèques vous permettent d'ajouter de l'interactivité à vos visualisations, telles que des infobulles, des zooms et des panoramiques.

Je m'appelle Austin, je suis blogueur et rédacteur technique et j'ai des années d'expérience en tant que data scientist et data analyst dans le domaine de la santé. J'ai commencé mon parcours technologique avec une formation en biologie et j'aide maintenant les autres à faire la même transition grâce à mon blog technologique. Ma passion pour la technologie m'a conduit à écrire pour des dizaines d'entreprises SaaS, inspirant les autres et partageant mes expériences.
Apprenez-en plus sur Python et la visualisation de données avec ces cours !
cours
Introduction to Data Visualization with Seaborn
cours
Improving Your Data Visualizations 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