Fonction boxplot() de Matplotlib


Matplotlib 参考文档Documentation de référence de Matplotlib

boxplot()Utilisé pour tracer des diagrammes en boîte, affichant intuitivement le résumé en cinq nombres des données : minimum, premier quartile, médiane, troisième quartile, maximum et éventuelles valeurs aberrantes.

Les diagrammes en boîte sont un outil essentiel pour l'analyse exploratoire des données, adaptés à la comparaison des caractéristiques de distribution de plusieurs groupes de données.

Définition de fonction

matplotlib.pyplot.boxplot(x, notch=None, sym=None, vert=None,
    whis=None, positions=None, widths=None, patch_artist=None,
    bootstrap=None, usermedians=None, conf_intervals=None,
    meanline=None, showmeans=None, showcaps=None, showbox=None,
    showfliers=None, boxprops=None, labels=None, flierprops=None,
    medianprops=None, meanprops=None, capprops=None,
    whiskerprops=None, manage_ticks=True, autorange=False,
    zorder=None, capwidths=None, **kwargs)

Description du paramètre

ParamètreTypeDescription
xtableau ou séquence de tableauxDonnées d'entrée ; un tableau unidimensionnel trace une boîte, une séquence de tableaux bidimensionnels trace plusieurs boîtes
notchboolIndique s'il faut tracer un diagramme en boîte entaillé (les encoches servent à l'intervalle de confiance de la médiane), par défaut False
vertboolTrue=vertical (par défaut), False=horizontal
whisfloat ou (float, float)Longueur des moustaches (multiple de l'IQR), par défaut 1.5. Par exemple, (5, 95) signifie les 5e et 95e percentiles
symstr ou NoneStyle de marqueur pour les valeurs aberrantes ; None signifie que les valeurs aberrantes ne sont pas affichées
widthsfloat ou array-likeLargeur de chaque boîte
patch_artistboolSi True, les boîtes sont remplies avec une couleur de remplissage (personnalisable avec facecolor)
showmeansboolAfficher ou non les points de moyenne, False par défaut
showfliersboolAfficher ou non les valeurs aberrantes, True par défaut
labelslisteLibellé pour chaque boîte
boxprops / flierprops / medianprops / meanpropsdictContrôler les propriétés d'apparence des boîtes/valeurs aberrantes/lignes médianes/moyennes respectivement

Structure d'un diagramme en boîte : la boîte s'étend de Q1 à Q3, et la ligne médiane est la médiane. Les moustaches s'étendent jusqu'aux points de données les plus éloignés dans l'intervalle de Q1-1.5*IQR à Q3+1.5*IQR. Les valeurs au-delà des moustaches sont des valeurs aberrantes.


Exemples d'utilisation

Exemple 1 : Diagramme en boîte simple

Exemple

import matplotlib.pyplot as plt
import numpy as np

np.random.seed(42)

# Trois groupes de données avec des distributions différentes
data = [
    np.random.normal(0, 1, 100),     # Normale standard
    np.random.normal(2, 1.5, 100),   # moyenne=2, écart-type=1.5
    np.random.normal(-1, 0.5, 100),  # moyenne=-1, écart-type=0.5
]

fig, ax = plt.subplots(figsize=(7, 5), layout='constrained')

bp = ax.boxplot(data, labels=['Groupe A', 'Groupe B', 'Groupe C'],
                patch_artist=True)

# Couleurs personnalisées
colors = ['#3498db', '#e74c3c', '#2E7DCC']
for patch, color in zip(bp['boxes'], colors):
    patch.set_facecolor(color)

ax.set_title('Diagramme en boîte : Comparaison de trois groupes')
ax.set_ylabel('Valeur')
ax.grid(axis='y', alpha=0.3)
plt.show()

Exemple 2 : Diagramme en boîte entaillé + Affichage de la moyenne

Exemple

import matplotlib.pyplot as plt
import numpy as np

np.random.seed(42)
data = [
    np.random.normal(0, 1, 100),
    np.random.normal(0, 1.2, 100),
    np.random.normal(0.3, 1, 100),
]

fig, ax = plt.subplots(figsize=(7, 5), layout='constrained')

bp = ax.boxplot(data,
                notch=True,            # Encoche (intervalle de confiance de la médiane)
                showmeans=True,        # Afficher la moyenne
                meanprops=dict(marker='D', markerfacecolor='red',
                               markersize=8),
                patch_artist=True,
                labels=['Contrôle', 'Test A', 'Test B'])

colors = ['#bdc3c7', '#3498db', '#2E7DCC']
for patch, color in zip(bp['boxes'], colors):
    patch.set_facecolor(color)

ax.set_title('Diagramme en boîte entaillé avec moyennes')
ax.set_ylabel('Mesure')
ax.grid(axis='y', alpha=0.3)
plt.show()

Exemple 3 : Diagramme en boîte horizontal

Exemple

import matplotlib.pyplot as plt
import numpy as np

np.random.seed(42)
data = [np.random.exponential(scale=s, size=100) for s in [1, 2, 3, 4]]
labels = ['Échelle=1', 'Échelle=2', 'Échelle=3', 'Échelle=4']

fig, ax = plt.subplots(figsize=(8, 5), layout='constrained')

bp = ax.boxplot(data, labels=labels,
                vert=False,                # Direction horizontale
                patch_artist=True)

colors = ['#e74c3c', '#f39c12', '#2E7DCC', '#3498db']
for patch, color in zip(bp['boxes'], colors):
    patch.set_facecolor(color)
    patch.set_alpha(0.7)

ax.set_title('Diagramme en boîte horizontal')
ax.set_xlabel('Valeur')
ax.grid(axis='x', alpha=0.3)
plt.show()

FAQ

Que signifient les parties d'un diagramme en boîte ?

Boîte: L'IQR (écart interquartile) de Q1 (25%) à Q3 (75%).

Ligne médiane: La ligne au milieu de la boîte = Q2 (50%).

Moustaches: S'étendent jusqu'aux points de données les plus éloignés dans Q1-1.5*IQR et Q3+1.5*IQR.

Valeurs aberrantes: Points de données individuels en dehors de la plage des moustaches.


Matplotlib 参考文档Documentation de référence de Matplotlib

Autres extensions