Matplotlib boxplot()-Funktion


Matplotlib 参考文档Matplotlib-Referenzdokumentation

boxplot()Wird verwendet, um Boxplots zu zeichnen und die Fünf-Zahlen-Zusammenfassung der Daten intuitiv anzuzeigen: Minimum, erstes Quartil, Median, drittes Quartil, Maximum und mögliche Ausreißer.

Boxplots sind ein Kernwerkzeug der explorativen Datenanalyse und eignen sich für den Vergleich der Verteilungsmerkmale mehrerer Datengruppen.

Funktionsdefinition

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)

Parameterbeschreibung

ParameterTypeBeschreibung
xArray oder Sequenz von ArraysEingabedaten; ein eindimensionales Array zeichnet eine Box, eine Sequenz zweidimensionaler Arrays zeichnet mehrere Boxen
notchboolGibt an, ob ein gekerbter Boxplot gezeichnet werden soll (Kerben werden für das Konfidenzintervall des Medians verwendet), Standard: False
vertboolTrue=vertikal (Standard), False=horizontal
whisfloat oder (float, float)Whisker-Länge (Vielfaches des IQR), Standard: 1.5. Zum Beispiel bedeutet (5, 95) das 5. und 95. Perzentil
symstr or NoneMarkerstil für Ausreißer; None bedeutet, dass Ausreißer nicht angezeigt werden
widthsfloat oder array-ähnlichBreite jeder Box
patch_artistboolWenn True, werden Boxen mit einer Füllfarbe gefüllt (kann mit facecolor angepasst werden)
showmeansboolOb Mittelwertpunkte angezeigt werden, Standardwert False
showfliersboolOb Ausreißer angezeigt werden, Standardwert True
labelsListeBeschriftung für jede Box
boxprops / flierprops / medianprops / meanpropsdictSteuert die Darstellungseigenschaften von Boxen, Ausreißern, Medianlinien bzw. Mittelwerten

Struktur eines Boxplots: Die Box reicht von Q1 bis Q3, und die mittlere Linie ist der Median. Die Whiskers erstrecken sich bis zu den am weitesten entfernten Datenpunkten innerhalb des Bereichs von Q1-1.5*IQR bis Q3+1.5*IQR. Werte außerhalb der Whiskers sind Ausreißer.


Anwendungsbeispiele

Beispiel 1: Einfaches Boxplot

Beispiel

import matplotlib.pyplot as plt
import numpy as np

np.random.seed(42)

# Drei Datengruppen mit unterschiedlichen Verteilungen
data = [
    np.random.normal(0, 1, 100),     # Standardnormalverteilung
    np.random.normal(2, 1.5, 100),   # Mittelwert=2, Standardabweichung=1.5
    np.random.normal(-1, 0.5, 100),  # Mittelwert=-1, Standardabweichung=0.5
]

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

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

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

ax.set_title('Boxplot: Vergleich von drei Gruppen')
ax.set_ylabel('Wert')
ax.grid(axis='y', alpha=0.3)
plt.show()

Beispiel 2: Gekerbter Boxplot + Mittelwert anzeigen

Beispiel

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,            # Kerbe (Median-Konfidenzintervall)
                showmeans=True,        # Mittelwert anzeigen
                meanprops=dict(marker='D', markerfacecolor='red',
                               markersize=8),
                patch_artist=True,
                labels=['Kontrolle', 'Test A', 'Test B'])

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

ax.set_title('Gekerbter Boxplot mit Mittelwerten')
ax.set_ylabel('Messwert')
ax.grid(axis='y', alpha=0.3)
plt.show()

Beispiel 3: Horizontaler Boxplot

Beispiel

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 = ['Scale=1', 'Scale=2', 'Scale=3', 'Scale=4']

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

bp = ax.boxplot(data, labels=labels,
                exponential=False,                # Horizontale Richtung
                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('Horizontaler Boxplot')
ax.set_xlabel('Wert')
ax.grid(axis='x', alpha=0.3)
plt.show()

FAQ

Was bedeuten die Bestandteile eines Boxplots?

Box: Der IQR (Interquartilsabstand) von Q1 (25%) bis Q3 (75%).

Medianlinie: Die Linie in der Mitte der Box = Q2 (50%).

Whiskers: Erstrecken sich bis zu den äußersten Datenpunkten innerhalb von Q1-1.5*IQR und Q3+1.5*IQR.

Ausreißer: Einzelne Datenpunkte außerhalb des Whisker-Bereichs.


Matplotlib 参考文档Matplotlib-Referenzdokumentation

Andere Erweiterungen