Histogramm
Histogramme stellen die Häufigkeits- oder Wahrscheinlichkeitsverteilung einer Variablen durch vertikale Bins gleicher Breite dar, die oft als Balken bezeichnet werden.
Das pyplot
-Modul stellt die Funktion hist
zur Verfügung, um Histogramme zu erstellen. Der erforderliche Parameter sind die Daten (x
), die ein Array oder eine Sequenz von Arrays sein können. Wenn mehrere Arrays übergeben werden, wird jedes in einer anderen Farbe dargestellt.
import pandas as pd import matplotlib.pyplot as plt # Loading the dataset with the average yearly temperatures in Boston and Seattle url = 'https://content-media-cdn.codefinity.com/courses/47339f29-4722-4e72-a0d4-6112c70ff738/weather_data.csv' weather_df = pd.read_csv(url, index_col=0) # Creating a histogram plt.hist(weather_df['Seattle']) plt.show()
Intervalle und Höhe
Ein Series
-Objekt mit den durchschnittlichen Jahrestemperaturen in Seattle wurde an die Funktion hist()
übergeben. Standardmäßig werden die Daten in 10 gleich große Intervalle unterteilt, die vom Minimal- bis zum Maximalwert reichen. Es sind jedoch nur 9 Bins sichtbar, da das zweite Intervall keine Datenpunkte enthält.
Die Höhe jedes Bins entspricht standardmäßig der Häufigkeit der Werte in diesem Intervall (Anzahl ihres Auftretens).
Anzahl der Bins
Ein weiterer wichtiger, aber optionaler Parameter ist bins
, der entweder die Anzahl der Bins (Ganzzahl), eine Zahlenfolge zur Angabe der Bin-Grenzen oder einen String akzeptiert. In den meisten Fällen reicht es aus, die Anzahl der Bins anzugeben.
Es gibt verschiedene Methoden zur Bestimmung der Breite von Histogramm-Bins. In diesem Beispiel verwenden wir die Sturges-Formel, die die optimale Anzahl der Bins basierend auf der Stichprobengröße berechnet:
Hierbei ist n
die Größe des Datenarrays.
Weitere Methoden zur Berechnung der Bins können hier eingesehen werden.
import pandas as pd import matplotlib.pyplot as plt import numpy as np url = 'https://content-media-cdn.codefinity.com/courses/47339f29-4722-4e72-a0d4-6112c70ff738/weather_data.csv' weather_df = pd.read_csv(url, index_col=0) # Specifying the number of bins plt.hist(weather_df['Seattle'], bins=1 + int(np.log2(len(weather_df)))) plt.show()
Die Anzahl der Zeilen im DataFrame
beträgt 26 (die Größe der Series
), daher ergibt sich eine Anzahl von 5 Bins.
Wahrscheinlichkeitsdichte-Approximation
Um eine Approximation der Wahrscheinlichkeitsdichte anzuzeigen, setzen Sie den Parameter density
in der Funktion True
auf hist
.
Nun wird die Höhe jedes Bins wie folgt berechnet:
wobei:
– die Gesamtanzahl der Werte im Datensatz;
– die Anzahl der Werte im Bin;
– die Breite des Bins.
Dies stellt sicher, dass die Gesamtfläche unter dem Histogramm 1 beträgt, was der zentralen Eigenschaft einer Wahrscheinlichkeitsdichtefunktion (PDF) entspricht.
import pandas as pd import matplotlib.pyplot as plt import numpy as np url = 'https://content-media-cdn.codefinity.com/courses/47339f29-4722-4e72-a0d4-6112c70ff738/weather_data.csv' weather_df = pd.read_csv(url, index_col=0) # Making a histogram a probability density function approximation plt.hist(weather_df['Seattle'], bins=1 + int(np.log2(len(weather_df))), density=True) plt.show()
Dies liefert eine Approximation der Wahrscheinlichkeitsdichtefunktion für die Temperaturdaten.
Wenn Sie mehr über die Parameter von hist()
erfahren möchten, können Sie die hist()
-Dokumentation konsultieren.
Swipe to start coding
Erstellung einer Annäherung an eine Wahrscheinlichkeitsdichtefunktion mithilfe einer Stichprobe aus der Standardnormalverteilung:
- Verwendung der korrekten Funktion zur Erstellung eines Histogramms.
- Nutzung von
normal_sample
als Datengrundlage für das Histogramm. - Angabe der Anzahl der Bins als zweites Argument unter Verwendung der Sturges-Formel.
- Das Histogramm als Annäherung an eine Wahrscheinlichkeitsdichtefunktion gestalten, indem das rechte Argument korrekt angegeben wird.
Lösung
Danke für Ihr Feedback!