Personnalisation des diagrammes en boîte

PythonPythonBeginner
Pratiquer maintenant

This tutorial is from open-source community. Access the source code

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce tutoriel, nous allons apprendre à personnaliser les diagrammes en boîte dans Matplotlib. Les diagrammes en boîte sont un moyen populaire de visualiser la distribution d'un ensemble de données. Ils sont également appelés diagrammes en boîte et barres et montrent la médiane, les quartiles et les valeurs aberrantes des données. Nous allons passer par divers exemples pour apprendre à personnaliser les diagrammes en boîte à l'aide de Matplotlib.

Conseils sur la machine virtuelle

Une fois le démarrage de la machine virtuelle terminé, cliquez dans le coin supérieur gauche pour basculer vers l'onglet Carnet d'étude pour accéder à Jupyter Notebook pour la pratique.

Parfois, vous devrez peut-être attendre quelques secondes pour que Jupyter Notebook ait fini de charger. La validation des opérations ne peut pas être automatisée en raison des limitations de Jupyter Notebook.

Si vous rencontrez des problèmes pendant l'apprentissage, n'hésitez pas à demander à Labby. Donnez des commentaires après la session, et nous résoudrons rapidement le problème pour vous.

Importation des bibliothèques requises

Nous commencerons par importer les bibliothèques requises, qui sont Matplotlib et NumPy. Nous allons également définir une graine aléatoire pour NumPy afin de nous assurer que nos résultats sont reproductibles.

import matplotlib.pyplot as plt
import numpy as np

np.random.seed(19680801)

Générer des données

Nous allons générer quelques données aléatoires pour les utiliser dans nos exemples. Nous utiliserons la fonction random.lognormal() de NumPy pour générer des données log-normales avec une moyenne de 1,5 et un écart-type de 1,75. Nous allons générer 37 échantillons de 4 variables, et nous les stockerons dans la variable data. Nous allons également créer une liste d'étiquettes pour chaque variable.

data = np.random.lognormal(size=(37, 4), mean=1.5, sigma=1.75)
labels = list('ABCD')

Diagramme en boîte par défaut

Nous commencerons par créer un diagramme en boîte par défaut pour visualiser les données. Nous utiliserons la fonction boxplot() de Matplotlib et passer les données et les étiquettes en tant qu'arguments. Nous définirons également le titre du graphique à l'aide de la fonction set_title().

fig, ax = plt.subplots()
ax.boxplot(data, labels=labels)
ax.set_title('Default Box Plot')
plt.show()

Supprimer les composants individuels

Nous pouvons supprimer les composants individuels du diagramme en boîte en utilisant les différents arguments clés disponibles dans la fonction boxplot(). Par exemple, nous pouvons supprimer les moyennes en définissant showmeans sur False. Nous pouvons également supprimer la boîte et les barres d'erreur en définissant respectivement showbox et showcaps sur False.

fig, axs = plt.subplots(nrows=2, ncols=2, figsize=(8, 8), sharey=True)
axs[0, 0].boxplot(data, labels=labels)
axs[0, 0].set_title('Default')

axs[0, 1].boxplot(data, labels=labels, showmeans=False)
axs[0, 1].set_title('No Means')

axs[1, 0].boxplot(data, labels=labels, showbox=False, showcaps=False)
axs[1, 0].set_title('No Box or Whiskers')

axs[1, 1].boxplot(data, labels=labels, showfliers=False)
axs[1, 1].set_title('No Outliers')

plt.show()

Personnalisation des styles de diagramme en boîte

Nous pouvons également personnaliser les styles du diagramme en boîte en utilisant les différents arguments clés disponibles dans la fonction boxplot(). Par exemple, nous pouvons changer la couleur et le style de ligne de la boîte en définissant boxprops. Nous pouvons également changer le style de la médiane, de la moyenne et de la ligne de moyenne en définissant respectivement medianprops, meanprops et meanlineprops.

fig, axs = plt.subplots(nrows=2, ncols=2, figsize=(8, 8), sharey=True)
axs[0, 0].boxplot(data, labels=labels)
axs[0, 0].set_title('Default')

boxprops = dict(linestyle='--', linewidth=2, color='red')
axs[0, 1].boxplot(data, labels=labels, boxprops=boxprops)
axs[0, 1].set_title('Custom Box')

medianprops = dict(linestyle='-', linewidth=2, color='blue')
meanprops = dict(marker='D', markeredgecolor='black', markerfacecolor='green')
meanlineprops = dict(linestyle='--', linewidth=2, color='red')
axs[1, 0].boxplot(data, labels=labels, medianprops=medianprops, meanprops=meanprops, meanline=True, meanlineprops=meanlineprops)
axs[1, 0].set_title('Custom Median, Mean, and Mean Line')

flierprops = dict(marker='o', markerfacecolor='red', markersize=8, markeredgecolor='none')
axs[1, 1].boxplot(data, labels=labels, flierprops=flierprops)
axs[1, 1].set_title('Custom Outliers')

plt.show()

Sommaire

Les diagrammes en boîte sont un excellent moyen de visualiser la distribution d'un ensemble de données. Matplotlib offre de nombreuses options de personnalisation pour les diagrammes en boîte, telles que la suppression de composants individuels et la personnalisation des styles des composants. En utilisant ces options, nous pouvons créer des diagrammes en boîte qui communiquent efficacement les informations que nous souhaitons transmettre.