Datenvisualisierung ist entscheidend, um komplexe Datensätze zu verstehen.
Im Python-Ökosystem sticht Seaborn als leistungsstarke Bibliothek hervor, um ansprechende und aussagekräftige statistische Grafiken wie Histogramme und Linienplots zu erstellen.
Sie baut auf den Möglichkeiten von Matplotlib auf, verbessert dessen Oberfläche und bietet mehr Optionen für die Visualisierung, insbesondere für statistische Analysen. Durch die nahtlose Integration mit Pandas DataFrames ist Seaborn bei Datenwissenschaftlerinnen und -wissenschaftlern sowie Analystinnen und Analysten besonders beliebt.
In dieser ausführlichen Anleitung konzentrieren wir uns auf einen der am häufigsten verwendeten Plots in Seaborn—das Histogramm.
Überblick über die sns.histplot-Funktion
Die Funktion sns.histplot in Seaborn dient zum Zeichnen von Histogrammen, die unverzichtbar sind, um die Verteilung kontinuierlicher Daten zu untersuchen. Sie ist vielseitig und umfangreich anpassbar, sodass sich leichter aussagekräftige Erkenntnisse aus den Daten gewinnen lassen.
Diese Funktion ist eine von vielen in der Seaborn-Bibliothek. Wirf für einen schnellen Überblick einen Blick auf dieses Cheat Sheet.
Bevor wir in die Visualisierung einsteigen, richten wir unsere Umgebung ein. Dazu importieren wir die benötigten Bibliotheken, wobei Seaborn im Fokus steht. Der Einfachheit halber wird Seaborn in der Regel als sns importiert.
Neben Seaborn gehören oft auch NumPy für numerische Operationen, pandas für die Datenverarbeitung und Matplotlib für zusätzliche Anpassungsmöglichkeiten dazu.
import seaborn as sns
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
Bereitgestellt von
Das sind zentrale Bibliotheken, die die nötigen Werkzeuge zum Erstellen und Anpassen von Visualisierungen in Python bereitstellen. Sie gehören zum Standardwerkzeug von Datenanalystinnen und -analysten sowie Data Scientists.
Wir verwenden den Boston-Housing-Prices-Datensatz, der aus der Scikit-Learn-Bibliothek geladen werden kann. Dieser Datensatz enthält Immobilienwerte in verschiedenen Gegenden Bostons sowie mehrere Attribute wie Kriminalitätsrate, durchschnittliche Zimmerzahl usw.
from sklearn.datasets import load_boston
boston = load_boston()
df = pd.DataFrame(boston.data, columns=boston.feature_names)
df['MEDV']= boston.target
Bereitgestellt von
Geeignete Daten sind entscheidend für nützliche Histogramme. In unserem Fall verwenden wir eine kontinuierliche Variable: den Medianwert selbstgenutzter Häuser (MEDV) in Boston.
Da Histogramme in der Regel die Verteilung einer einzelnen Variable zeigen, wählen wir eine Spalte aus unserem DataFrame.
Bevor es losgeht, hier einige grundlegende Voraussetzungen für dein Seaborn-Histogramm:
Mindestens eine Spalte mit kontinuierlichen Daten
Grundverständnis des Datensatzes
Vertrautheit mit Pandas-DataFrame-Operationen
Basiswissen zur Seaborn-Syntax und -Funktionen
Wir schauen uns zunächst gängige Syntax und Parameter der Funktion `sns.histplot` an.
Syntax und Parameter
Die grundlegende Syntax zur Erstellung eines Histogramms mit `sns.histplot` ist unkompliziert.
Wichtige Parameter sind:
data: Der Datensatz, häufig ein Pandas DataFrame.
x: Die Variable, für die das Histogramm erstellt wird.
color: Legt die Balkenfarbe fest.
alpha: Transparenz der Balken.
bins: Anzahl der Klassen (Balkengruppen).
binwidth: Breite jeder Klasse.
kde: Boolean zum Hinzufügen einer Kernel-Dichtekurve.
hue: Zur Unterscheidung von Datenteilmengen anhand einer weiteren Variable.
Die Funktion akzeptiert viele Parameter und Argumente, wir konzentrieren uns jedoch auf diejenigen, die wir für unseren Datensatz benötigen.
Ein einfaches Histogramm erstellen
Erstellen wir ein einfaches Histogramm, um die Verteilung der medianen Immobilienpreise (MEDV) zu visualisieren.
plt.figure(figsize=(10,6))
sns.histplot(data=df, x='MEDV')
plt.title('Distribution of Median Housing Prices in Boston')
plt.xlabel('Median Value of Owner-Occupied Homes (in $1000)')
plt.ylabel('Frequency')
plt.grid(True)
plt.show()Bereitgestellt von
Dieser Befehl zeigt das Histogramm für die Spalte MEDV an.
So sieht der daraus erzeugte Plot aus:
Das Histogramm zeigt die Verteilung der medianen Immobilienpreise (MEDV) im Boston-Datensatz. Es veranschaulicht, wie häufig bestimmte Medianwerte selbstgenutzter Häuser vorkommen.
Dein Seaborn-Histogramm verfeinern
Klassengröße und -anzahl anpassen
Die Anzahl der Klassen (Bins) zu variieren, kann das Verständnis der Verteilung verbessern. Mehr Klassen zeigen mehr Details, weniger Klassen vereinfachen die Darstellung.
Um die Anzahl der Klassen zu erhöhen, passt du den Parameter bins an.
Ein Beispiel:
plt.figure(figsize=(10,6))
sns.histplot(data=df, x='MEDV', bins=30)
plt.title('Distribution of Median Housing Prices in Boston')
plt.xlabel('Median Value of Owner-Occupied Homes (in $1000)')
plt.ylabel('Frequency')
plt.grid(True)
plt.show()Bereitgestellt von
Wie du im Seaborn-Histogramm oben siehst, hat sich die Anzahl der Balken auf die von uns gesetzten 30 erhöht. So kannst du tiefer ins Detail gehen und mehr Granularität erzielen.
Aussehen anpassen
Anpassungen wie Balkenfarbe und Transparenz machen das Histogramm informativer und optisch ansprechender.
Im folgenden Beispiel habe ich unser ursprüngliches Histogramm mit Lila statt der Standardfarbe neu erstellt.
Hier ist der Code, mit dem ich die obige Grafik erstellt habe.
plt.figure(figsize=(10,6))
sns.histplot(data=df, x='MEDV', color='purple')
plt.title('Distribution of Median Housing Prices in Boston')
plt.xlabel('Median Value of Owner-Occupied Homes (in $1000)')
plt.ylabel('Frequency')
plt.grid(True)
plt.show()Bereitgestellt von
Kernel-Dichteschätzung (KDE) hinzufügen
KDE liefert eine geglättete Schätzung der Verteilung und hilft dabei, Muster in den Daten zu erkennen.
Dabei entsteht eine glatte Kurve, die den allgemeinen Trend sichtbar macht.
Dazu verwenden wir den Parameter kde in dieser Funktion:
plt.figure(figsize=(10,6))
sns.histplot(data=df, x='MEDV', kde=True)
plt.title('Distribution of Median Housing Prices in Boston')
plt.xlabel('Median Value of Owner-Occupied Homes (in $1000)')
plt.ylabel('Frequency')
plt.grid(True)
plt.show()Bereitgestellt von
Dadurch erhält unser Histogramm eine schöne Kurve, wie unten gezeigt.
Die hinzugefügte Kernel-Dichtekurve (KDE) liefert eine glattere Schätzung der Verteilung.
Fortgeschrittene Histogramm-Techniken
Multivariate Histogramme
Der Parameter hue ermöglicht den Vergleich verschiedener Kategorien innerhalb eines Histogramms.
Damit lassen sich Kategorien innerhalb desselben Histogramms unterscheiden, um Verteilungen visuell zu vergleichen.
Konkret wählst du eine kategoriale Spalte aus dem DataFrame, und die Daten werden über unterschiedliche Farben abgegrenzt.
Wenn wir zum Beispiel eine Spalte namens "CHAS" haben, die angibt, ob ein Haus am Charles River liegt (1) oder nicht (0), können wir mit dem Parameter "hue" die Verteilung der medianen Immobilienpreise für Häuser am Fluss mit denen fernab des Flusses vergleichen.
Der Code sieht wie folgt aus:
plt.figure(figsize=(10,6))
sns.histplot(data=df, x='MEDV', hue='CHAS')
plt.title('Distribution of Median Housing Prices in Boston')
plt.xlabel('Median Value of Owner-Occupied Homes (in $1000)')
plt.ylabel('Frequency')
plt.grid(True)
plt.show()Bereitgestellt von
So entsteht ein Histogramm, in dem die Verteilung von MEDV für Häuser am Charles River (CHAS=1) farblich von der Verteilung für Häuser abseits des Flusses (CHAS=0) unterschieden wird.
Best Practices für Seaborn-Histogramme
Beim Erstellen von Seaborn-Histogrammen solltest du Folgendes im Hinterkopf behalten:
1. Die richtige Anzahl an Klassen wählen
Die optimale Anzahl an Klassen ist entscheidend für ein informatives Histogramm. Mehr Klassen zeigen mehr Details, können aber auch zu Überanpassung führen und die Daten verzerren.
Zu wenige Klassen hingegen vereinfachen die Verteilung zu stark.
Eine Daumenregel ist die Scott-Regel, mit der sich die ideale Klassengröße basierend auf der Anzahl der Datenpunkte berechnen lässt.
2. Detailtiefe und Klarheit ausbalancieren
Es ist wichtig, genügend Details zu zeigen, gleichzeitig muss die Visualisierung klar und leicht interpretierbar bleiben.
Zu viele Elemente wie zusätzliche KDE-Linien oder ein Zuviel an Farben können zu überladenen Visualisierungen führen.
Finde die Balance zwischen hilfreichen Zusätzen und Einfachheit.
3. Datentyp berücksichtigen
Auch der Datentyp beeinflusst die geeigneten Histogramm-Parameter.
Kontinuierliche Variablen benötigen beispielsweise andere Klassengrößen als kategoriale Variablen.
Berücksichtige die Natur deiner Daten, damit das Histogramm die Verteilung korrekt widerspiegelt.
Seaborn ist eine leistungsfähige Bibliothek für Visualisierungen in Python, und mit der Funktion `histplot` erstellst du Histogramme im Handumdrehen. Durch das Anpassen der Parameter bestimmst du Aussehen und Detailgrad deiner Grafik genau so, wie du es brauchst.
Denk an die oben genannten Tipps für Seaborn-Histogramme: Achte auf den Datentyp, wähle passende Klassengrößen und halte die Balance zwischen Details und Übersichtlichkeit.
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, wie du Python-Listen mit Techniken wie Slicing, List Comprehensions und itertools aufteilen kannst. Finde heraus, wann du welche Methode für die beste Datenverarbeitung nutzen solltest.
Datenvisualisierung ist entscheidend, um komplexe Datensätze zu verstehen.
Im Python-Ökosystem sticht Seaborn als leistungsstarke Bibliothek hervor, um ansprechende und aussagekräftige statistische Grafiken wie Histogramme und Linienplots zu erstellen.
Sie baut auf den Möglichkeiten von Matplotlib auf, verbessert dessen Oberfläche und bietet mehr Optionen für die Visualisierung, insbesondere für statistische Analysen. Durch die nahtlose Integration mit Pandas DataFrames ist Seaborn bei Datenwissenschaftlerinnen und -wissenschaftlern sowie Analystinnen und Analysten besonders beliebt.
In dieser ausführlichen Anleitung konzentrieren wir uns auf einen der am häufigsten verwendeten Plots in Seaborn—das Histogramm.
Überblick über die
sns.histplot-FunktionDie Funktion
sns.histplotin Seaborn dient zum Zeichnen von Histogrammen, die unverzichtbar sind, um die Verteilung kontinuierlicher Daten zu untersuchen. Sie ist vielseitig und umfangreich anpassbar, sodass sich leichter aussagekräftige Erkenntnisse aus den Daten gewinnen lassen.Diese Funktion ist eine von vielen in der Seaborn-Bibliothek. Wirf für einen schnellen Überblick einen Blick auf dieses Cheat Sheet.
Seaborn-Cheat Sheet für Data Science - Quelle
Deine Umgebung einrichten
Benötigte Bibliotheken importieren
Bevor wir in die Visualisierung einsteigen, richten wir unsere Umgebung ein. Dazu importieren wir die benötigten Bibliotheken, wobei Seaborn im Fokus steht. Der Einfachheit halber wird Seaborn in der Regel als
snsimportiert.Neben Seaborn gehören oft auch NumPy für numerische Operationen, pandas für die Datenverarbeitung und Matplotlib für zusätzliche Anpassungsmöglichkeiten dazu.
Das sind zentrale Bibliotheken, die die nötigen Werkzeuge zum Erstellen und Anpassen von Visualisierungen in Python bereitstellen. Sie gehören zum Standardwerkzeug von Datenanalystinnen und -analysten sowie Data Scientists.
Wenn du gerade erst mit Python startest, probiere unseren Kurs Introduction to Python aus. Für vertiefendes Lernen zu pandas, NumPy und Matplotlib empfehlen wir die Kurse Data Manipulation with pandas, Introduction to NumPy und Introduction to Data Visualization with Matplotlib.
Daten vorbereiten
Wir verwenden den Boston-Housing-Prices-Datensatz, der aus der Scikit-Learn-Bibliothek geladen werden kann. Dieser Datensatz enthält Immobilienwerte in verschiedenen Gegenden Bostons sowie mehrere Attribute wie Kriminalitätsrate, durchschnittliche Zimmerzahl usw.
Geeignete Daten sind entscheidend für nützliche Histogramme. In unserem Fall verwenden wir eine kontinuierliche Variable: den Medianwert selbstgenutzter Häuser (MEDV) in Boston.
Da Histogramme in der Regel die Verteilung einer einzelnen Variable zeigen, wählen wir eine Spalte aus unserem DataFrame.
Neu bei Scikit-Learn? Schau dir unser Tutorial zu Machine Learning mit Python an. Wenn du tiefer einsteigen willst, deckt unser Kurs Supervised Learning with scikit-learn die Grundlagen ab.
Dein erstes Seaborn-Histogramm erstellen
Bevor es losgeht, hier einige grundlegende Voraussetzungen für dein Seaborn-Histogramm:
Wir schauen uns zunächst gängige Syntax und Parameter der Funktion `sns.histplot` an.
Syntax und Parameter
Die grundlegende Syntax zur Erstellung eines Histogramms mit `sns.histplot` ist unkompliziert.
Wichtige Parameter sind:
data: Der Datensatz, häufig ein Pandas DataFrame.x: Die Variable, für die das Histogramm erstellt wird.color: Legt die Balkenfarbe fest.alpha: Transparenz der Balken.bins: Anzahl der Klassen (Balkengruppen).binwidth: Breite jeder Klasse.kde: Boolean zum Hinzufügen einer Kernel-Dichtekurve.hue: Zur Unterscheidung von Datenteilmengen anhand einer weiteren Variable.Die Funktion akzeptiert viele Parameter und Argumente, wir konzentrieren uns jedoch auf diejenigen, die wir für unseren Datensatz benötigen.
Ein einfaches Histogramm erstellen
Erstellen wir ein einfaches Histogramm, um die Verteilung der medianen Immobilienpreise (MEDV) zu visualisieren.
Dieser Befehl zeigt das Histogramm für die Spalte MEDV an.
So sieht der daraus erzeugte Plot aus:
Das Histogramm zeigt die Verteilung der medianen Immobilienpreise (MEDV) im Boston-Datensatz. Es veranschaulicht, wie häufig bestimmte Medianwerte selbstgenutzter Häuser vorkommen.
Dein Seaborn-Histogramm verfeinern
Klassengröße und -anzahl anpassen
Die Anzahl der Klassen (Bins) zu variieren, kann das Verständnis der Verteilung verbessern. Mehr Klassen zeigen mehr Details, weniger Klassen vereinfachen die Darstellung.
Um die Anzahl der Klassen zu erhöhen, passt du den Parameter
binsan.Ein Beispiel:
Wie du im Seaborn-Histogramm oben siehst, hat sich die Anzahl der Balken auf die von uns gesetzten 30 erhöht. So kannst du tiefer ins Detail gehen und mehr Granularität erzielen.
Aussehen anpassen
Anpassungen wie Balkenfarbe und Transparenz machen das Histogramm informativer und optisch ansprechender.
Im folgenden Beispiel habe ich unser ursprüngliches Histogramm mit Lila statt der Standardfarbe neu erstellt.
Hier ist der Code, mit dem ich die obige Grafik erstellt habe.
Kernel-Dichteschätzung (KDE) hinzufügen
KDE liefert eine geglättete Schätzung der Verteilung und hilft dabei, Muster in den Daten zu erkennen.
Dabei entsteht eine glatte Kurve, die den allgemeinen Trend sichtbar macht.
Dazu verwenden wir den Parameter
kdein dieser Funktion:Dadurch erhält unser Histogramm eine schöne Kurve, wie unten gezeigt.
Die hinzugefügte Kernel-Dichtekurve (KDE) liefert eine glattere Schätzung der Verteilung.
Fortgeschrittene Histogramm-Techniken
Multivariate Histogramme
Der Parameter hue ermöglicht den Vergleich verschiedener Kategorien innerhalb eines Histogramms.
Damit lassen sich Kategorien innerhalb desselben Histogramms unterscheiden, um Verteilungen visuell zu vergleichen.
Konkret wählst du eine kategoriale Spalte aus dem DataFrame, und die Daten werden über unterschiedliche Farben abgegrenzt.
Wenn wir zum Beispiel eine Spalte namens "CHAS" haben, die angibt, ob ein Haus am Charles River liegt (1) oder nicht (0), können wir mit dem Parameter "hue" die Verteilung der medianen Immobilienpreise für Häuser am Fluss mit denen fernab des Flusses vergleichen.
Der Code sieht wie folgt aus:
So entsteht ein Histogramm, in dem die Verteilung von
MEDVfür Häuser am Charles River (CHAS=1) farblich von der Verteilung für Häuser abseits des Flusses (CHAS=0) unterschieden wird.Best Practices für Seaborn-Histogramme
Beim Erstellen von Seaborn-Histogrammen solltest du Folgendes im Hinterkopf behalten:
1. Die richtige Anzahl an Klassen wählen
Die optimale Anzahl an Klassen ist entscheidend für ein informatives Histogramm. Mehr Klassen zeigen mehr Details, können aber auch zu Überanpassung führen und die Daten verzerren.
Zu wenige Klassen hingegen vereinfachen die Verteilung zu stark.
Eine Daumenregel ist die Scott-Regel, mit der sich die ideale Klassengröße basierend auf der Anzahl der Datenpunkte berechnen lässt.
2. Detailtiefe und Klarheit ausbalancieren
Es ist wichtig, genügend Details zu zeigen, gleichzeitig muss die Visualisierung klar und leicht interpretierbar bleiben.
Zu viele Elemente wie zusätzliche KDE-Linien oder ein Zuviel an Farben können zu überladenen Visualisierungen führen.
Finde die Balance zwischen hilfreichen Zusätzen und Einfachheit.
3. Datentyp berücksichtigen
Auch der Datentyp beeinflusst die geeigneten Histogramm-Parameter.
Kontinuierliche Variablen benötigen beispielsweise andere Klassengrößen als kategoriale Variablen.
Berücksichtige die Natur deiner Daten, damit das Histogramm die Verteilung korrekt widerspiegelt.
Seaborn ist allerdings nur eine von mehreren Bibliotheken für Datenvisualisierung in Python. Du kannst deine Histogramme alternativ auch mit Matplotlib erstellen.
Fazit
Seaborn ist eine leistungsfähige Bibliothek für Visualisierungen in Python, und mit der Funktion `histplot` erstellst du Histogramme im Handumdrehen. Durch das Anpassen der Parameter bestimmst du Aussehen und Detailgrad deiner Grafik genau so, wie du es brauchst.
Denk an die oben genannten Tipps für Seaborn-Histogramme: Achte auf den Datentyp, wähle passende Klassengrößen und halte die Balance zwischen Details und Übersichtlichkeit.
Du willst mehr über Seaborn und seine starken Visualisierungsfunktionen lernen? Unser Kurs Introduction to Data Visualization with Seaborn ist ein idealer Einstieg.