Kurs
Python Boxplots: Ein umfassender Leitfaden für Anfänger
Hast du dich schon einmal gefragt, wie man in Python Verteilungen von numerischen Daten besser darstellen kann? Am besten ist es, wenn du lernst, wie man Boxplots benutzt! Boxplots sind eine gute Möglichkeit, um Verteilungsvergleiche zwischen mehreren Gruppen zu visualisieren.
In diesem Lernprogramm erfahren wir, was Boxplots sind, wie man sie in Python erstellt und welche Anfängerfehler häufig gemacht werden.
Was sind Python Boxplots?
Boxplots, auch bekannt als Box-and-Whisker-Plots, sind eine Standardmethode zur Darstellung der Datenverteilung auf der Grundlage einer fünfstelligen Zusammenfassung: Minimum, erstes Quartil (Q1), Median, drittes Quartil (Q3) und Maximum.
Boxplots sind besonders nützlich, um Ausreißer zu identifizieren und die Streuung und Schräglage der Daten zu verstehen. Sie werden auch verwendet, um mehrere Gruppen zu vergleichen oder die Verteilung einer einzelnen Variable zu visualisieren.
Boxplot-Komponenten
Ein typischer Boxplot besteht aus mehreren Komponenten, die Teil seiner Anatomie sind:
- Mittelwert: Dies ist der mittlere Wert der Daten, der durch eine Linie innerhalb des Kastens dargestellt wird.
- Boxen: Sie stellen den Interquartilsbereich (IQR) der Daten dar, der den Bereich zwischen Q1 und Q3 repräsentiert. Die untere und obere Kante stehen für Q1 bzw. Q3.
- Schnurrhaare: Das sind vertikale Linien, die von beiden Enden der Box ausgehen und die Mindest- und Höchstwerte darstellen, wobei Ausreißer ausgeschlossen werden.
- Ausreißer: Dies sind Punkte außerhalb der Whisker, die im Vergleich zum Rest der Daten als ungewöhnlich oder extrem gelten.
- Kappen: Dies sind horizontale Linien an den Enden der Whisker, die die Minimal- und Maximalwerte einschließlich der Ausreißer darstellen.
Diese Komponenten verleihen dem Boxplot eine statistische Bedeutung und ermöglichen einfache visuelle Vergleiche zwischen verschiedenen Datengruppen.
Python ist ein fortschrittliches Werkzeug, mit dem wir Boxplots erstellen können. In den folgenden Abschnitten werden wir uns verschiedene Methoden ansehen, um das zu erreichen.
Python Boxplots: Schritt-für-Schritt-Anleitung
Nachdem wir nun ein grundlegendes Verständnis von Boxplots haben, wollen wir sehen, wie wir sie mit Python erstellen können. Mehrere Bibliotheken in Python, wie Matplotlib, Seaborn und Plotly, unterstützen die Erstellung von Boxplots.
1. Installation der erforderlichen Bibliotheken
Um Boxplots in Python zu erstellen, musst du zunächst die notwendigen Bibliotheken installieren. Die wichtigsten benötigten Bibliotheken sind Matplotlib, Seaborn und Plotly.
Hier ist der Code, um sie zu installieren:
pip install matplotlib
pip install seaborn
pip install plotly==5.22.0
2. Bibliotheken importieren und Daten laden
Nach der Installation musst du diese Bibliotheken in deine Python-Umgebung importieren.
Achte darauf, dass du auch die Datensätze lädst, die du für deine Boxplots verwendest, falls vorhanden.
#imports Matplotlib library and assigns shorthand 'plt'
import matplotlib.pyplot as plt
#imports Seaborn library and assigns shorthand 'sns'
import seaborn as sns
#imports Plotly library and assigns shorthand 'px'
import plotly.express as px
3. Matplotlib Boxplots erstellen
Dank der Vielseitigkeit von Python erfordert die Erstellung eines einfachen Boxplots nur minimalen Code. Beginnen wir mit der am weitesten verbreiteten Bibliothek, Matplotlib.
1. Einzelner Matplotlib Boxplot
Um einen Boxplot mit Matplotlib zu erstellen, importiere die notwendigen Bibliotheken:
import matplotlib.pyplot as plt
import numpy as np
Als Nächstes wollen wir einen einfachen Datensatz vorbereiten:
# Generates some random dataset
np.random.seed(10)
data = np.random.normal(0, 1, 100)
Zum Schluss erstellen wir den eigentlichen Boxplot und drucken ihn aus:
# Creates a boxplot
plt.boxplot(data) plt.title('Basic Boxplot') plt.show()
Hier sind die Ergebnisse:
2. Mehrere Matplotlib-Boxplots
Wenn du separate Boxplots in verschiedenen Teilplots erstellen möchtest, kannst du die Funktion subplot
verwenden. Damit kannst du mehrere Boxplots nebeneinander in einem einzigen Bild erstellen.
Hier ist das vollständige Codebeispiel:
import matplotlib.pyplot as plt
import numpy as np
# Generates multiple datasets
data1 = np.random.normal(0, 1, 100)
data2 = np.random.normal(1, 2, 100)
data3 = np.random.normal(2, 1.5, 100)
# Creates subplots
fig, axs = plt.subplots(1, 3, figsize=(15, 5))
# Plots Boxplot for Data 1
axs[0].boxplot(data1)
axs[0].set_title('Data 1')
axs[0].set_xlabel('Sample')
axs[0].set_ylabel('Value')
# Plots Boxplot for Data 2
axs[1].boxplot(data2)
axs[1].set_title('Data 2')
axs[1].set_xlabel('Sample')
axs[1].set_ylabel('Value')
# Plots Boxplot for Data 3
axs[2].boxplot(data3)
axs[2].set_title('Data 3')
axs[2].set_xlabel('Sample')
axs[2].set_ylabel('Value')
# Adjusts layout
plt.tight_layout()
plt.show()
Dies ist das Ergebnis:
Diese Unterdiagramme haben jedoch nicht dieselbe Achse und eignen sich nicht für nebeneinander liegende Vergleiche zwischen den Kategorien. Für mehrere Boxplots mit der gleichen Achse musst du gruppierte Boxplots erstellen.
Gruppierte Boxplots sind besonders nützlich, um Verteilungen über mehrere Kategorien hinweg zu vergleichen. Sie ermöglichen ein differenzierteres Verständnis der Daten. Diese Vergleiche können Unterschiede aufdecken, die aus anderen Karten nicht sofort ersichtlich sind.
Jede Gruppe wird im selben Diagramm nebeneinander dargestellt, so dass es einfacher ist, Abweichungen, Trends und Ausreißer in den verschiedenen Unterkategorien zu erkennen.
Hier erfährst du, wie du eine gruppierte Teilfläche erstellst:
# Generates grouped data
data_group1 = [np.random.normal(0, 1, 100), np.random.normal(1, 2, 100), np.random.normal(2, 1.5, 100)]
data_group2 = [np.random.normal(0, 1, 100), np.random.normal(1, 2, 100), np.random.normal(2, 1.5, 100)]
# Combines two data groups into a dataset
data = data_group1 + data_group2
# Creates grouped boxplots
plt.boxplot(data, positions=[1, 2, 3, 5, 6, 7], labels=['G1-D1', 'G1-D2', 'G1-D3', 'G2-D1', 'G2-D2', 'G2-D3'])
plt.title('Grouped Boxplots')
plt.xlabel('Group-Dataset')
plt.ylabel('Value')
plt.show()
Dies ist der gruppierte Boxplot, der mit dem obigen Code erstellt wurde:
4. Matplotlib Boxplots anpassen
Du kannst erweiterte Anpassungen in Matplotlib nutzen, um deine Datenvisualisierungen zu verbessern.
Techniken wie das Hinzufügen von Mittelwerten, das Hinzufügen der Standardabweichung, das Erstellen gruppierter Boxplots und die Verwendung horizontaler Boxplots können einen besseren Einblick in die Verteilung deiner Daten geben.
Wenn du Boxplots in Python anpasst, kannst du die Darstellung auch an die Anforderungen deines Projekts anpassen.
Hier sind einige Möglichkeiten, wie du Boxplots mit der Matplotlib-Bibliothek anpassen kannst:
1. Hinzufügen von Etiketten und Titeln
Überschriften und Beschriftungen machen deine Diagramme für die Betrachter/innen verständlicher, damit sie den Datenvergleich schnell erkennen können. Das Hinzufügen ist ganz einfach und kann mit den Funktionen von Matplotlib erfolgen.
So fügst du Beschriftungen zu einem Matplotlib-Boxplot hinzu:
plt.boxplot(data)
# Adds title
plt.title('Customized Boxplot Title')
# Adds x axis label
plt.xlabel('Customized X Label')
# Adds y axis label
plt.ylabel('Customized Y Label')
plt.show()
Dadurch wird ein beschrifteter Boxplot wie in der folgenden Abbildung erstellt:
2. Anpassen der Boxplot-Farben
Die Anpassung der Farben und Stile von Boxplots in Python ermöglicht eine optisch ansprechende und klare Darstellung der Daten. Sie helfen dir auch dabei, bestimmte Datenpunkte oder Vergleiche gegenüber deinen Stakeholdern effektiv hervorzuheben.
Du kannst die Farben der Boxen, Whisker, Caps, Mediane und Fliers mit den Parametern boxprops
, Whiskerprops, capprops
, medianprops
und flierprops
ändern.
Hier ist das Code-Beispiel:
plt.boxplot(data, boxprops=dict(color='blue'), whiskerprops=dict(color='red'), capprops=dict(color='green'), medianprops=dict(color='orange'), flierprops=dict(markerfacecolor='red', marker='o'))
plt.show()
Dadurch werden unterschiedliche Farben für deine Boxplot-Komponenten basierend auf den von dir festgelegten Parametern erstellt:
3. Mittelwert und Standardabweichung addieren
Füge dem Boxplot den Mittelwert und die Standardabweichung hinzu, um weitere statistische Informationen zu erhalten.
# Creates dataset
data1 = np.random.normal(0, 1, 100)
data2 = np.random.normal(1, 2, 100)
data3 = np.random.normal(2, 1.5, 100)
# Calculates the mean and standard deviations
mean = [np.mean(d) for d in data]
std_devs = [np.std(d) for d in data]
# Creates a boxplot
plt.boxplot(data, labels=['Data 1', 'Data 2', 'Data 3'])
# Adds mean as red dots
for i in range(len(mean)):
plt.plot(i + 1, mean[i], 'ro')
# Adds standard deviations as error bars
for i in range(len(std_devs)):
plt.errorbar(i + 1, mean[i], yerr=std_devs[i], fmt='o', color='red')
# Plots graph
plt.title('Boxplot with Means and Standard Deviations')
plt.xlabel('Dataset')
plt.ylabel('Value')
plt.show()
Hier ist die resultierende Grafik:
4. Horizontale Boxplots
Horizontale Boxplots können die Datenvisualisierung besser lesbar machen, vor allem wenn es um lange Kategorienamen geht.
Das kannst du ganz einfach mit dem Parameter vert der Funktion boxplot in Matplotlib machen.
# Creates horizontal boxplot
plt.boxplot(data,
labels=['Data 1', 'Data 2', 'Data 3'],
vert=False)
# Plots graph
plt.title('Horizontal Boxplot')
plt.xlabel('Value')
plt.ylabel('Dataset')
plt.show()
Das ist das Ergebnis der Ausführung des obigen Codes:
Unser Kurs Einführung in die Datenvisualisierung mit Matplotlib soll dir helfen, besser zu verstehen, wie du Datenvisualisierungen über Boxplots hinaus erstellen kannst.
Wenn du diese Informationen in Zukunft nachschlagen möchtest, findest du hier eine Zusammenfassung für das Plotten in Matplotlib:
5. Boxplots mit Seaborn erstellen
Seaborn, das auf Matplotlib aufbaut, vereinfacht die Erstellung von ästhetisch ansprechenden Boxplots mit minimalem Code. Seine einfache Syntax macht es für alle Qualifikationsstufen zugänglich, und seine Integration mit anderen Bibliotheken ermöglicht maximale Flexibilität bei der Datenanalyse.
1. Basic seaborn boxplot
Hier ist eine Schritt-für-Schritt-Anleitung zum Erstellen eines einfachen Boxplots mit Seaborn. Beginne wie zuvor mit dem Importieren der notwendigen Bibliotheken.
# Imports necessary libraries
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
Als Nächstes wollen wir einen einfachen Datensatz vorbereiten:
# Generates a random dataset
np.random.seed(10)
data = np.random.normal(0, 1, 100)
Zum Schluss erstellen wir den eigentlichen Boxplot und drucken ihn aus:
# Creates a basic boxplot
sns.boxplot(data=data)
# Adds title to the boxplot
plt.title('Basic Boxplot')
plt.show()
Dies ist das Ergebnis:
2. Erweiterte Anpassung von Seegeborenen
Du kannst dein Seaborn-Diagramm mit den Parametern hue
, orient
und palette
anpassen.
Sehen wir uns an, wie du deinem Boxplot auf der Grundlage von Kategorien Farben hinzufügen kannst, indem du den Parameter hue
verwendest:
# Generate multiple datasets
data = {
'Group': ['A']*100 + ['B']*100 + ['C']*100,
'Value': np.concatenate([np.random.normal(0, 1, 100),
np.random.normal(1, 2, 100),
np.random.normal(2, 1.5, 100)])
}
df = pd.DataFrame(data)
# Create additional grouping data
df['Subgroup'] = np.random.choice(['X', 'Y'], size=300)
# Plots graph
sns.boxplot(x='Group', y='Value', data=df, hue='Subgroup', palette='Set2')
plt.title('Colored Boxplot')
plt.show()
Hier ist der geänderte Boxplot:
Um deinen Boxplot in einer bestimmten Richtung auszurichten, verwende den Parameter orient
. Für die vertikale Ausrichtung sollte der Parameter orient
auf "v" gesetzt werden. Für die horizontale Ausrichtung sollte sie auf "h" gesetzt werden.
Hier ist der Code für einen horizontalen Boxplot:
# Plots horizontal boxplot
sns.boxplot(data=df, orient='h', palette='Set2')
plt.title('Colored Boxplot')
plt.show()
Der obige Code erstellt einen Boxplot wie diesen:
Um dem Boxplot einzelne Datenpunkte hinzuzufügen, kannst du einen Schwarmplot mit der Funktion swarmplot
verwenden:
# Plots boxplot
sns.boxplot(x='Group', y='Value', data=df)
# Overlays swarm plot over boxplot
sns.swarmplot(x='Group', y='Value', data=df, color='black', alpha=0.5)
plt.title('Boxplot with Swarmplot')
plt.show()
Der obige Code erstellt einen Boxplot wie diesen:
Ein Schwarmdiagramm wie dieses kann helfen, mehr Einblick in die Verteilung deiner Daten zu bekommen. Er ergänzt die statistischen Informationen eines Boxplots, um deinen Betrachtern ein umfassendes Bild deiner Daten zu vermitteln.
In unserem Kurs Einführung in die Datenvisualisierung mit Seaborn erfährst du, wie du Datenvisualisierungen in Seaborn implementieren kannst.
Wenn du diese Informationen in Zukunft nachschlagen möchtest, findest du hier einen Spickzettel für das Plotten in Seaborn:
Python Boxplot-Ergebnisse interpretieren
Die Interpretation eines Boxplots hängt vom Kontext und der spezifischen Forschungsfrage ab, die er beantwortet.
Einige allgemeine Richtlinien können jedoch dabei helfen, die durch den Boxplot dargestellte Datenverteilung zu verstehen. Dazu gehören:
- Die Medianlinie zeigt den mittleren Wert des Datensatzes an.
- Der Interquartilsbereich (IQR) oder die mittleren 50% der Werte liegen zwischen dem ersten Quartil (Q1) und dem dritten Quartil (Q3).
- Die Whiskers erstrecken sich jeweils 1,5 Mal über und unter Q3 und Q1.
- Ausreißer werden einzeln mit einem Punkt oder einem Sternchen gezeichnet.
- Die Länge der Box und der Whisker geben Aufschluss darüber, wie weit die Daten gestreut sind.
- Schiefe Verteilungen weisen eine Asymmetrie in der Größe und Position der Box im Verhältnis zur Medianlinie auf.
- Ausreißer, die um mehr als das 1,5-fache über oder unter Q3 und Q1 liegen, können auf extreme Werte oder mögliche Fehler bei der Datenmessung hinweisen.
Häufige Fehler bei der Erstellung von Python-Boxplots sind zu vermeiden
Auch wenn es mit Python ganz einfach ist, optisch ansprechende Boxplots auf Basis deiner Datensätze zu erstellen, sollten einige Aspekte beachtet werden, um irreführende oder falsche Visualisierungen zu vermeiden.
1. Keine Behandlung fehlender Werte
Bei der Erstellung eines Python-Boxplots wird oft übersehen, wie wichtig die Vorverarbeitung der Daten ist, was zu irreführenden Ergebnissen führt.
Alle Datenvisualisierungen müssen in irgendeiner Form bereinigt werden, bevor sie gezeichnet werden. Boxplots sind keine Ausnahme und können fehlende Werte als Ausreißer anzeigen, was die Ergebnisse verzerren kann.
2. Unsachgemäße Skalierung der Daten
Außerdem versäumen es die Nutzer manchmal, die Daten angemessen zu skalieren, was zu einem verzerrten Boxplot führen kann, der die wahren Eigenschaften des Datensatzes falsch darstellt. Die Skalierung stellt sicher, dass die Merkmale gleichmäßig zur Analyse beitragen.
3. Keine Behandlung von Ausreißern
Schließlich kann es vorkommen, dass Analysten es versäumen, Ausreißer gründlich zu untersuchen und zu behandeln, bevor sie sie aufzeichnen. Ein unsachgemäßer Umgang mit Ausreißern kann die Interpretation verfälschen. Deshalb ist es wichtig, echte Ausreißer von Fehlern oder Anomalien bei der Datenerhebung zu unterscheiden.
Verwende diesen Spickzettel, wenn du Datenvisualisierungen erstellst:
Schlussgedanken
Boxplots sind ein wertvolles Werkzeug, um Datenverteilungen zu visualisieren und sie über Kategorien hinweg zu vergleichen.
In Python kannst du Matplotlib, Seaborn oder Plotly verwenden, um schnell und ohne viel Programmieraufwand Boxplots zu erstellen. DataCamp bietet umfassende Kurse für jedes dieser Tools an:
- Einführung in die Datenvisualisierung mit Matplotlib
- Einführung in die Datenvisualisierung mit Seaborn
- Einführung in die Datenvisualisierung mit Plotly
Wie wäre es, mehr über Datenvisualisierung mit Python zu erfahren? Dann würde dir der Lernpfad Datenvisualisierung mit Python sehr helfen!
FAQs
Können Boxplots auch für nicht-numerische Daten verwendet werden?
Nein, Boxplots sind ausdrücklich für numerische Daten gedacht. Sie stellen die Verteilung eines Datensatzes anhand einer fünfstelligen Zusammenfassung (Minimum, erstes Quartil, Median, drittes Quartil und Maximum) dar, die numerische Werte erfordert. Für nicht-numerische Daten sind andere Visualisierungstechniken wie Balken- oder Tortendiagramme besser geeignet.
Wie kann ich das Vorhandensein von mehreren Ausreißern in einem Boxplot interpretieren?
Mehrere Ausreißer in einem Boxplot weisen auf mehrere Datenpunkte hin, die sich deutlich vom Rest des Datensatzes unterscheiden. Dies könnte auf Schwankungen oder ungewöhnliche Beobachtungen hindeuten, die einer weiteren Untersuchung bedürfen. Ausreißer können auf Fehler bei der Datenerhebung, natürliche Schwankungen oder signifikante Unterschiede in Untergruppen innerhalb der Daten zurückzuführen sein.
Kann ich Boxplots verwenden, um die Datenverteilung über mehrere Kategorien hinweg zu vergleichen?
Ja, Boxplots eignen sich hervorragend, um Verteilungen über verschiedene Kategorien hinweg zu vergleichen. Du kannst Boxplots für verschiedene Kategorien nebeneinander stellen, um ihre Mediane, Interquartilsbereiche und das Vorhandensein von Ausreißern zu vergleichen. Dies kann helfen, Unterschiede und Gemeinsamkeiten in der Verteilung der verschiedenen Gruppen zu erkennen.
Welche Fallstricke gibt es bei der Interpretation von Boxplots zu vermeiden?
Vermeide bei der Interpretation von Boxplots die folgenden Fallstricke:
- Ignoriere den Kontext von Ausreißern: Ausreißer müssen nicht immer auf Fehler hindeuten, sondern können sinnvolle Abweichungen sein.
- Fehlinterpretation des Medians als Mittelwert: Der Median ist der mittlere Wert, nicht der Durchschnitt, und wird weniger von Ausreißern beeinflusst.
- Die Bedeutung der Stichprobengröße wird übersehen: Kleine Stichprobengrößen können zu irreführenden Boxplots führen. Stelle sicher, dass deine Datengröße für eine zuverlässige Auswertung ausreicht.
Wie kann ich in Python interaktive Boxplots erstellen?
Um interaktive Boxplots in Python zu erstellen, kannst du Bibliotheken wie Plotly oder Bokeh verwenden. Mit diesen Bibliotheken kannst du deine Visualisierungen interaktiv gestalten, z. B. mit Tooltips, Zoomen und Schwenken.

Ich bin Austin, ein Blogger und Tech-Autor mit jahrelanger Erfahrung als Datenwissenschaftler und Datenanalyst im Gesundheitswesen. Ich habe meine Reise in die Welt der Technik mit einem Hintergrund in Biologie begonnen und helfe jetzt anderen mit meinem Technik-Blog, den gleichen Weg einzuschlagen. Meine Leidenschaft für Technologie hat dazu geführt, dass ich für Dutzende von SaaS-Unternehmen schreibe, um andere zu inspirieren und meine Erfahrungen zu teilen.
Lerne in diesen Kursen mehr über Python und Datenvisualisierung!
Kurs
Einführung in die Datenvisualisierung mit Seaborn
Kurs