CodeGym /Kurse /Python SELF DE /Erstellung von Histogrammen zur Visualisierung der Datenv...

Erstellung von Histogrammen zur Visualisierung der Datenverteilung

Python SELF DE
Level 41 , Lektion 3
Verfügbar

1. Grundlagen der Erstellung von Histogrammen

Wenn du jemals ein Buffet betrachtet und versucht hast zu entscheiden, welche Snacks am häufigsten vorkommen, hast du bereits ein wenig über Datenverteilungen verstanden. In der Programmierung nutzen wir Histogramme, um Muster in Daten zu erkennen, die auf den ersten Blick nicht offensichtlich sind. Histogramme helfen uns, visuell zu analysieren, wie Daten auf bestimmte Kategorien oder numerische Bereiche verteilt sind. Also, los geht's!

Was ist ein Histogramm?

Histogramm ist ein Diagrammtyp, der hilft, die Verteilung von Daten auf bestimmte Intervalle oder "Bins" (manchmal "Körbe" genannt) zu visualisieren. Wenn wir beispielsweise wissen möchten, wie oft Schüler eine bestimmte Punktzahl in einem Test erzielt haben, ist ein Histogramm die beste Möglichkeit, dies darzustellen.

Hauptparameter eines Histogramms

Ein Histogramm besteht aus Balken (Bins), wobei jeder Balken zeigt, wie viele Werte in das entsprechende Intervall fallen. Die Hauptparameter eines Histogramms sind:

  • Bins (bins): Anzahl der Intervalle, auf die der Wertebereich aufgeteilt wird.
  • Farbe und Umrandung (color und edgecolor): legen das Aussehen der Balken fest.
  • Bereich (range): legt die minimalen und maximalen Werte für die Darstellung fest.
  • Dichte (density): Wenn auf True gesetzt, wird das Histogramm normalisiert, sodass die Gesamtfläche der Balken gleich eins ist.

Verwendung der Funktion hist() zur Erstellung von Histogrammen

Die Matplotlib-Bibliothek bietet eine praktische Funktion hist(), die die Erstellung von Histogrammen vereinfacht. Schauen wir uns ein einfaches Beispiel an:

Python

import matplotlib.pyplot as plt
import numpy as np

# Datensatz erstellen
data = np.random.normal(0, 1, 1000)

# Histogramm erstellen
plt.hist(data, bins=30, alpha=0.7, color='blue')
plt.title('Histogramm der Datenverteilung')
plt.xlabel('Werte')
plt.ylabel('Häufigkeit')
plt.show()

Hier erstellen wir einen Datensatz mit der Funktion np.random.normal(), die eine normale Verteilung erzeugt. Wir teilen die Daten in 30 Bins auf und verwenden den Parameter alpha, um die Transparenz der Balken für eine bessere Darstellung einzustellen.

2. Einstellung der Bins und Diagrammstil

Festlegen der Anzahl und Größe der Bins

Die Anzahl und Größe der Bins können die Interpretation des Histogramms erheblich beeinflussen. Zu große Bins können wichtige Details verbergen, während zu kleine Bins das Histogramm unordentlich und schwer verständlich machen können.

Praktisches Beispiel:

Python

# Anzahl und Größe der Bins ändern
plt.hist(data, bins=10, color='green', edgecolor='black')
plt.title('Histogramm mit 10 Bins')
plt.xlabel('Werte')
plt.ylabel('Häufigkeit')
plt.show()

plt.hist(data, bins=50, color='red', edgecolor='black')
plt.title('Histogramm mit 50 Bins')
plt.xlabel('Werte')
plt.ylabel('Häufigkeit')
plt.show()

Schau dir an, wie sich das Aussehen des Histogramms ändert, wenn 10 oder 50 Bins verwendet werden. Siehst du den Unterschied? Das ist genau der Fall, bei dem die Größe wichtig ist!

Praktische Beispiele zur Änderung der Histogrammparameter

Histogramme können nicht nur in der Anzahl der Bins angepasst werden, sondern auch in der Farbe, Transparenz und sogar im Stil der Balken. Hier sind weitere Beispiele:

Python

# Weitere Anpassungsparameter
plt.hist(data, bins=30, density=True, color='purple', edgecolor='white', linestyle='dashed')
plt.title('Dichte-Histogramm mit geändertem Stil')
plt.xlabel('Werte')
plt.ylabel('Dichte')
plt.grid(True)
plt.show()

In diesem Beispiel haben wir den Parameter density=True hinzugefügt, der das Histogramm normalisiert, sodass die Fläche unter dem Diagramm 1 beträgt. Das kann nützlich sein, wenn du die Wahrscheinlichkeitsdichteverteilung analysieren möchtest.

3. Beispiele für die Verwendung von Histogrammen

Histogramme finden in vielen Bereichen Anwendung – von der Analyse finanzieller Daten bis hin zu Experimenten in der Physik. Sehen wir uns an, wie ein Histogramm mit einem echten Datensatz verwendet wird.

Erstellung eines Histogramms mit einem echten Datensatz

Stell dir vor, wir haben einen Datensatz, der die durchschnittliche Tagestemperatur eines Jahres darstellt. Wir möchten analysieren, wie oft die Temperatur in einem bestimmten Bereich liegt.

Python

# Temperatur-Datensatz (vereinfacht für das Beispiel)
temperatures = [15, 16, 15, 14, 19, 22, 24, 25, 17, 18, 15, 16, 23, 24, 21, 19, 18, 20, 22, 25, 26, 27]

# Histogramm erstellen
plt.hist(temperatures, bins=5, color='navy', edgecolor='black')
plt.title('Temperatur-Histogramm')
plt.xlabel('Temperatur (°C)')
plt.ylabel('Häufigkeit')
plt.show()

In diesem Beispiel haben wir fünf Bins verwendet, um herauszufinden, wie die Werte verteilt sind. Das Histogramm zeigt, dass die meisten Temperaturen im Bereich von 15 bis 20°C liegen.

Vergleich von Verteilungen in einem Histogramm

Manchmal ist es notwendig, die Verteilung mehrerer Datensätze in einem Histogramm zu vergleichen. In Matplotlib kannst du mehrere Histogramme mit dem Parameter alpha (Transparenz) überlagern.

Beispiel 3: Vergleich von Verteilungen

Python

import matplotlib.pyplot as plt

# Datengenerierung
data1 = [5, 10, 10, 15, 15, 20, 25, 30, 30, 35, 40]
data2 = [5, 7, 9, 10, 11, 13, 15, 17, 19, 20, 25]

# Überlagerte Histogramme erstellen
plt.hist(data1, bins=5, color="blue", alpha=0.5, label="Datensatz 1")
plt.hist(data2, bins=5, color="green", alpha=0.5, label="Datensatz 2")
plt.xlabel("Wert")
plt.ylabel("Häufigkeit")
plt.title("Vergleich von zwei Verteilungen")
plt.legend()
plt.show()

In diesem Beispiel haben wir den Parameter alpha=0.5 für jedes Histogramm verwendet, wodurch die Balken halbtransparent werden und so ein visueller Vergleich der Überlappungen zwischen den Verteilungen ermöglicht wird.

Nützliche Tipps für die Arbeit mit Histogrammen

  • Optimale Auswahl der Binanzahl: Wähle die Anzahl der Bins basierend auf dem Umfang und der Beschaffenheit der Daten. Zu wenige oder zu viele Bins können die Verteilung verfälschen.
  • Vergleich von Verteilungen: Nutze Transparenz (alpha), um mehrere Histogramme zu überlagern und Verteilungen zu vergleichen.
  • Hinzufügen eines Rasters: Ein Raster hilft, die Daten besser zu interpretieren. Es kann mit der Funktion plt.grid(True) hinzugefügt werden.
  • Parameter density: Nutze density=True, um Daten als Wahrscheinlichkeitsdichte anzuzeigen, was besonders nützlich ist, wenn Verteilungen verglichen werden.
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION