Matplotlib boxplot()-Funktion
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
| Parameter | Type | Beschreibung |
|---|---|---|
| x | Array oder Sequenz von Arrays | Eingabedaten; ein eindimensionales Array zeichnet eine Box, eine Sequenz zweidimensionaler Arrays zeichnet mehrere Boxen |
| notch | bool | Gibt an, ob ein gekerbter Boxplot gezeichnet werden soll (Kerben werden für das Konfidenzintervall des Medians verwendet), Standard: False |
| vert | bool | True=vertikal (Standard), False=horizontal |
| whis | float oder (float, float) | Whisker-Länge (Vielfaches des IQR), Standard: 1.5. Zum Beispiel bedeutet (5, 95) das 5. und 95. Perzentil |
| sym | str or None | Markerstil für Ausreißer; None bedeutet, dass Ausreißer nicht angezeigt werden |
| widths | float oder array-ähnlich | Breite jeder Box |
| patch_artist | bool | Wenn True, werden Boxen mit einer Füllfarbe gefüllt (kann mit facecolor angepasst werden) |
| showmeans | bool | Ob Mittelwertpunkte angezeigt werden, Standardwert False |
| showfliers | bool | Ob Ausreißer angezeigt werden, Standardwert True |
| labels | Liste | Beschriftung für jede Box |
| boxprops / flierprops / medianprops / meanprops | dict | Steuert 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 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 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 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.
Andere Erweiterungen