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.