Pandas Plot Histogramm: Histogramme in Python erstellen und anpassen
Published on
Die Datenvisualisierung ist ein wichtiger Aspekt der Datenanalyse und die Pandas-Bibliothek von Python ist ein leistungsstolles Werkzeug, das es uns ermöglicht, informative Visualisierungen zu erstellen. Eine solche Visualisierung ist ein Histogramm, eine graphische Darstellung der Verteilung eines Datensatzes. In diesem Artikel werden wir untersuchen, wie man ein Histogramm mit pandas erstellt, Bins anpasst, mehrere Spalten plottet und vieles mehr. Wir werden auch einige häufig gestellte Fragen behandeln und Beispiele geben, um Ihnen den Prozess besser zu verständlich.
Histogramme sind besonders nützlich bei der Arbeit mit großen Datensätzen, da sie eine visuelle Zusammenfassung der Daten liefern können. Sie können uns helfen, die zugrunde liegende Häufigkeitsverteilung eines Satzes von kontinuierlichen oder diskreten Daten zu verstehen. Dies kann besonders nützlich sein, wenn man mit Daten wie Altersgruppen arbeitet, bei denen das Verständnis der Verteilung wertvolle Erkenntnisse liefern kann.
Möchten Sie schnell Datenvisualisierungen aus einem Python Pandas-Datenrahmen erstellen, ohne Code schreiben zu müssen?
PyGWalker ist eine Python-Bibliothek für explorative Datenanalyse mit Visualisierung. PyGWalker (opens in a new tab) kann Ihren Jupyter Notebook Datenanalyse- und Datenvisualisierungsworkflow vereinfachen, indem es Ihren Pandas-Datenrahmen (und Polars-Datenrahmen) in eine Tableau-ähnliche Benutzeroberfläche für die visuelle Exploration verwandelt.
Ein Histogramm in Pandas erstellen
Das Erstellen eines Histogramms in pandas ist dank der hist()
-Funktion einfach. Diese Funktion bietet eine schnelle Möglichkeit, die Verteilung von Daten in einem pandas DataFrame oder einer Series zu visualisieren. Hier ist ein einfaches Beispiel, wie man ein Histogramm erstellt:
import pandas as pd
import matplotlib.pyplot as plt
# Erstellen eines einfachen DataFrames
data = {'Werte': [1, 2, 2, 3, 3, 3, 4, 4, 4, 4]}
df = pd.DataFrame(data)
# Plot eines Histogramms
df['Werte'].hist()
plt.show()
In diesem Beispiel importieren wir zuerst die benötigten Bibliotheken, pandas und matplotlib. Dann erstellen wir einen einfachen pandas DataFrame und verwenden die hist()
-Funktion, um ein Histogramm der 'Werte'-Spalte zu plotten. Die plt.show()
-Funktion wird verwendet, um das Diagramm anzuzeigen.
Anpassung von Bins in einem Pandas Histogramm
Die hist()
-Funktion in pandas verwendet standardmäßig eine Anzahl von Bins von 10. Sie können jedoch die Anzahl der Bins nach Ihren Bedürfnissen anpassen. Der Bins-Parameter in der hist()
-Funktion wird verwendet, um die gewünschte Anzahl der Bins in Ihrem Histogramm anzugeben.
Wenn Sie beispielsweise die Anzahl der Bins auf 20 erhöhen möchten, können Sie dies wie folgt tun:
df['Werte'].hist(bins=20)
plt.show()
Die Anpassung der Bins in einem pandas Histogramm kann Ihnen einen detaillierteren Blick auf die Datenverteilung ermöglichen. Es ist jedoch wichtig, eine geeignete Anzahl von Bins zu wählen. Zu viele Bins können zu Overfitting führen, bei dem das Histogramm die Daten zu eng repräsentiert und das "große Ganze" verfehlt. Andererseits können zu wenige Bins die Daten zu stark vereinfachen und es schwer machen, nützliche Muster zu erkennen.
Plotten eines Histogramms mit mehreren Spalten in Pandas
Pandas ermöglicht es auch, ein Histogramm mit mehreren Spalten zu plotten. Dies kann besonders nützlich sein, wenn man die Verteilung von zwei verschiedenen Variablen vergleichen möchte. Um ein Histogramm mit mehreren Spalten zu plotten, müssen Sie einfach die Spalten an die hist()
-Funktion übergeben.
Hier ist ein Beispiel, wie man ein Histogramm mit mehreren Spalten plottet:
# Erstellen eines DataFrames mit zwei Spalten
data = {'Werte1': [1, 2, 2, 3, 3, 3, 4, 4, 4, 4],
'Werte2': [1, 1, 2, 2, 3, 3, 3, 4, 4, 4]}
df = pd.DataFrame(data)
# Plotten eines Histogramms mit mehreren Spalten
df.hist(bins=20, alpha=0.5)
plt.show()
In diesem Beispiel erstellen wir einen DataFrame mit zwei Spalten, 'Werte1' und 'Werte2'. Wir rufen dann die hist()
-Funktion auf dem DataFrame auf, die ein Histogramm für jede Spalte erstellt. Der alpha
-Parameter wird verwendet, um die Transparenz der Histogramme festzulegen, was den Vergleich erleichtert.
Plotten eines Histogramms nach Gruppe in Pandas
Eine weitere leistungsstarke Funktion von pandas ist die Möglichkeit, ein Histogramm nach Gruppen zu plotten. Dies kann besonders nützlich sein, wenn Sie die Verteilung einer Variablen über verschiedene Gruppen vergleichen möchten.
Angenommen, wir haben einen DataFrame, der die Altersangaben von Personen in verschiedenen Berufen enthält. Wir können ein Histogramm der Altersangaben nach Beruf wie folgt erstellen:
# Erstellen eines DataFrames mit Alter und Beruf
data = {'Alter': [23, 25, 22, 30, 32, 40, 35, 24, 28, 35],
'Beruf': ['Ingenieur', 'Arzt', 'Ingenieur', 'Arzt', 'Ingenieur', 'Arzt', 'Ingenieur', 'Arzt', 'Ingenieur', 'Arzt']}
df = pd.DataFrame(data)
# Histogramm nach Gruppe plotten
df.groupby('Beruf')['Alter'].hist(alpha=0.6)
plt.legend(['Ingenieur', 'Arzt'])
plt.show()
In diesem Beispiel erstellen wir zuerst einen DataFrame mit den Spalten 'Alter' und 'Beruf'. Wir gruppieren dann den DataFrame nach 'Beruf' und rufen die hist()
-Funktion auf der Spalte 'Alter' auf. Dadurch entsteht ein Histogramm der Altersangaben für jeden Beruf. Der alpha
-Parameter wird verwendet, um die Transparenz der Histogramme festzulegen, und die legend()
-Funktion wird verwendet, um eine Legende zum Diagramm hinzuzufügen.
Plotten eines normalisierten Histogramms in Pandas
Manchmal ist es nützlich, ein normalisiertes Histogramm zu plotten, um die Verteilung von Daten als Anteile statt als Anzahl darzustellen. Dies kann in pandas erreicht werden, indem man den density
-Parameter in der hist()
-Funktion auf True
setzt.
Hier ist ein Beispiel, wie man ein normalisiertes Histogramm plottet:
# Ein normalisiertes Histogramm plotten
df['Werte1'].hist(density=True)
plt.show()```
In diesem Beispiel sorgt das Argument `density=True` dafür, dass die Fläche unter dem Histogramm auf 1 addiert wird und uns effektiv eine Wahrscheinlichkeitsdichtefunktion liefert.
## Erstellen von Unterplots mit Pandas Histogramm
Pandas ermöglicht es Ihnen auch, Unterplots zu erstellen, wenn Sie Histogramme plotten. Dies kann besonders nützlich sein, wenn Sie die Verteilungen mehrerer Variablen nebeneinander vergleichen möchten. Um Unterplots zu erstellen, können Sie das Argument `subplots=True` in der `hist()` Funktion verwenden.
Hier ist ein Beispiel:
```python
# Unterplots erstellen
df.hist(bins=20, alpha=0.5, subplots=True, layout=(1,2))
plt.show()
In diesem Beispiel erstellen wir zwei Unterplots in einer einzelnen Reihe für die Spalten 'values1' und 'values2'. Der layout
Parameter wird verwendet, um die Anordnung der Unterplots festzulegen.
Fehlerbalken zu einem Pandas Histogramm hinzufügen
Das Hinzufügen von Fehlerbalken zu einem Histogramm kann eine visuelle Darstellung der Variabilität oder Ungewissheit in den Daten bieten. Obwohl pandas das direkte Hinzufügen von Fehlerbalken zu Histogrammen nicht unterstützt, kann dies mit Hilfe der matplotlib
Bibliothek erreicht werden.
Hier ist ein Beispiel:
import numpy as np
# Mittelwert und Standardabweichung berechnen
mean = df['values1'].mean()
std = df['values1'].std()
# Histogramm mit Fehlerbalken plotten
plt.hist(df['values1'], bins=20, alpha=0.5)
plt.errorbar(mean, 5, xerr=std, fmt='o')
plt.show()
In diesem Beispiel berechnen wir zunächst den Mittelwert und die Standardabweichung der Spalte 'values1'. Dann plotten wir das Histogramm und fügen einen Fehlerbalken an der Position des Mittelwerts hinzu. Die errorbar()
Funktion von matplotlib
wird verwendet, um den Fehlerbalken hinzuzufügen.
Fazit
Histogramme sind ein leistungsfähiges Werkzeug zur Datenvisualisierung und die Pandas-Bibliothek in Python bietet eine vielseitige Funktion zur Erstellung und Anpassung von Histogrammen. Egal, ob Sie ein einfaches Histogramm plotten, Bins anpassen, mehrere Spalten plotten oder Unterplots erstellen möchten - Pandas ist für Sie da. Denken Sie daran, dass der Schlüssel zu einer effektiven Datenvisualisierung nicht nur darin besteht, aussagekräftige Plots zu erstellen, sondern sie auch an Ihre spezifischen Bedürfnisse anzupassen.
FAQ
-
Wie kann ich die x-Achsen-Ticks in einem Pandas-Histogramm anpassen? Sie können die x-Achsen-Ticks mit der
xticks()
Funktion aus dermatplotlib
Bibliothek anpassen. Zum Beispiel setztplt.xticks(range(0, 10))
die x-Achsen-Ticks auf einen Bereich von 0 bis 10. -
Wie kann ich ein Histogramm mit Dichte in Pandas plotten? Sie können ein Histogramm mit Dichte plotten, indem Sie den
density
Parameter aufTrue
in derhist()
Funktion setzen. Dadurch wird ein normiertes Histogramm geplottet, bei dem die Fläche unter dem Histogramm auf 1 addiert wird. -
Wie kann ich meiner Pandas-Histogramm eine Legende hinzufügen? Sie können Ihrem Pandas-Histogramm eine Legende mit der
legend()
Funktion aus dermatplotlib
Bibliothek hinzufügen. Zum Beispiel fügtplt.legend(['Spalte 1', 'Spalte 2'])
eine Legende mit 'Spalte 1' und 'Spalte 2' hinzu.