Python
Histogramme in Python schnell plotten: Ein Leitfaden für Anfänger

Histogramme in Python schnell plotten: Ein Leitfaden für Anfänger

MoeNagy Dev

Histogramme verstehen

Was ist ein Histogramm?

Ein Histogramm ist eine grafische Darstellung der Verteilung eines Datensatzes. Es handelt sich um einen bestimmten Diagrammtyp, der die Häufigkeit oder Anzahl von Datenpunkten innerhalb einer Gruppe von Klassen oder Intervallen darstellt. Histogramme sind ein leistungsstolles Werkzeug, um die Form und die Merkmale eines Datensatzes zu visualisieren und es einfacher zu machen, Muster, Trends und Ausreißer zu identifizieren.

Zweck und Anwendungen von Histogrammen

Histogramme haben mehrere wichtige Zwecke bei der Datenanalyse und -visualisierung:

  1. Erkunden der Datenverteilung: Histogramme bieten eine klare und prägnante Möglichkeit, die zugrunde liegende Verteilung eines Datensatzes zu verstehen. Dadurch können Sie den Zentralwert, die Streuung, die Schiefe und andere wichtige statistische Eigenschaften der Daten identifizieren.

  2. Identifizieren von Mustern und Trends: Durch die Untersuchung der Form und Struktur eines Histogramms können Sie Muster, Trends und potenzielle Anomalien in Ihren Daten aufdecken. Dies kann Ihr Verständnis der Daten informieren und weitere Analysen unterstützen.

  3. Vergleichen von Datensätzen: Histogramme können verwendet werden, um die Verteilungen mehrerer Datensätze zu vergleichen und Ähnlichkeiten, Unterschiede und potenzielle Beziehungen zwischen ihnen zu identifizieren.

  4. Unterstützen der Entscheidungsfindung: Die Erkenntnisse aus der Histogrammanalyse können von unschätzbarem Wert bei fundierten Entscheidungen sein, sei es im Geschäftsbereich, in der wissenschaftlichen Forschung oder in anderen Bereichen, in denen datengesteuerte Entscheidungsfindung entscheidend ist.

Bedeutung der Visualisierung von Datenverteilungen

Die Visualisierung von Datenverteilungen durch Histogramme ist aus mehreren Gründen von essentieller Bedeutung:

  1. Intuitives Verständnis: Histogramme bieten eine intuitive und leicht interpretierbare Möglichkeit, die Form und die Merkmale eines Datensatzes zu verstehen. Dadurch wird es einfacher, die Ergebnisse relevanten Stakeholdern oder Kollegen zu kommunizieren.

  2. Identifizieren von Ausreißern: Histogramme können Ihnen helfen, Ausreißer oder extreme Werte in Ihren Daten zu identifizieren, die für weitere Analysen oder Entscheidungsfindungen wichtig sein können.

  3. Unterstützung der statistischen Analyse: Die aus der Histogrammanalyse gewonnenen Erkenntnisse können die Auswahl geeigneter statistischer Verfahren beeinflussen, wie beispielsweise die Auswahl der richtigen Maße für Zentralwert oder Streuung.

  4. Hypothesentests: Histogramme können verwendet werden, um die zugrunde liegende Verteilung eines Datensatzes zu bewerten, was ein wesentlicher Schritt in vielen statistischen Hypothesentestverfahren ist.

  5. Kommunikation der Ergebnisse: Gut gestaltete Histogramme können die wichtigsten Merkmale eines Datensatzes effektiv kommunizieren. Dadurch werden sie zu einem wertvollen Werkzeug für Datenvisualisierung und Präsentation.

Vorbereitung Ihrer Daten

Importieren der erforderlichen Bibliotheken

Um Histogramme in Python zu erstellen, benötigen Sie in der Regel die Matplotlib-Bibliothek, die eine Vielzahl von Diagramm- und Visualisierungsfunktionen bietet. Möglicherweise finden Sie es auch nützlich, die NumPy-Bibliothek für numerische Operationen auf Ihren Daten zu importieren.

import matplotlib.pyplot as plt
import numpy as np

Sammeln und bereinigen Sie Ihre Daten

Bevor Sie ein Histogramm erstellen können, benötigen Sie einen Datensatz, den Sie visualisieren möchten. Dieser Datensatz kann aus verschiedenen Quellen stammen, wie z.B. CSV-Dateien, Datenbanken oder Web-APIs. Sobald Sie Ihre Daten haben, ist es wichtig, diese bei Bedarf zu bereinigen und vorzuverarbeiten und sicherzustellen, dass sie im geeigneten Format für die Darstellung vorliegen.

# Beispiel: Laden von Daten aus einer CSV-Datei
data = np.genfromtxt('data.csv', delimiter=',')

Sicherstellen, dass die Daten im geeigneten Format für die Darstellung vorliegen

Histogramme in Python erwarten in der Regel eine eindimensionale Array- oder Listenstruktur mit numerischen Werten. Wenn Ihre Daten in einem anderen Format vorliegen, müssen Sie möglicherweise zusätzliche Vorverarbeitungsschritte durchführen, um die relevanten Werte zu extrahieren.

# Beispiel: Extrahieren einer einzelnen Spalte aus einem 2D-Array
data_column = data[:, 0]

Erstellen eines grundlegenden Histogramms

Verwendung der Funktion plt.hist() von Matplotlib

Die Funktion plt.hist() in Matplotlib ist die primäre Methode zum Erstellen von Histogrammen in Python. Diese Funktion nimmt Ihre Daten als Eingabe entgegen und erstellt das Histogrammdiagramm.

# Erstellen eines grundlegenden Histogramms
plt.hist(data_column)
plt.show()

Anpassen der Anzahl der Bins

Ein wichtiger Parameter zur Erstellung eines Histogramms ist die Anzahl der Bins, die die Anzahl der Intervalle oder Balken im Diagramm bestimmt. Die optimale Anzahl der Bins kann von der Größe und Verteilung Ihres Datensatzes abhängen.

# Anpassen der Anzahl der Bins
plt.hist(data_column, bins=20)
plt.show()

Anpassen der x- und y-Achsen

Sie können das Erscheinungsbild Ihres Histogramms weiter anpassen, indem Sie die Beschriftungen, Achsenbeschriftungen und Skalen der x- und y-Achsen anpassen.

# Anpassen der x- und y-Achsen
plt.hist(data_column, bins=20)
plt.xlabel('Datenwerte')
plt.ylabel('Häufigkeit')
plt.show()

Hinzufügen eines Titels und von Achsenbeschriftungen

Um Ihr Histogramm aussagekräftiger zu machen, können Sie einen Titel und Achsenbeschriftungen hinzufügen, um den Kontext für die dargestellten Daten zu bieten.

# Hinzufügen eines Titels und von Achsenbeschriftungen
plt.hist(data_column, bins=20)
plt.xlabel('Datenwerte')
plt.ylabel('Häufigkeit')
plt.title('Histogramm der Datenverteilung')
plt.show()

Verbesserung des Histogramms

Ändern der Farbe und des Füllstils des Histogramms

Sie können das Erscheinungsbild der Histogrammbalken anpassen, indem Sie die Farbe und den Füllstil ändern.

# Ändern der Farbe und des Füllstils des Histogramms
plt.hist(data_column, bins=20, color='blue', edgecolor='black', facecolor='lightblue')
plt.xlabel('Datenwerte')
plt.ylabel('Häufigkeit')
plt.title('Histogramm der Datenverteilung')
plt.show()

Hinzufügen von Gitterlinien und Achsenbeschriftungen

Bitte geben Sie die deutsche Übersetzung für diese Markdown-Datei an. Wenn es eine Frontmatter gibt, stellen Sie sicher, dass Sie den language-Parameter in das entsprechende de übersetzen. Für den Code sollten Kommentare nicht übersetzt werden. Übersetzen Sie den Inhalt des Beispiels nicht. Hier ist die Datei:

Gridlines hinzufügen und die Achsenbeschriftungen anpassen kann die Lesbarkeit und Klarheit des Histogramms verbessern.

# Gridlines hinzufügen und Achsenbeschriftungen anpassen
plt.hist(data_column, bins=20, color='blue', edgecolor='black', facecolor='lightblue')
plt.xlabel('Datenwerte')
plt.ylabel('Häufigkeit')
plt.title('Histogramm der Datenverteilung')
plt.grid(True)
plt.xticks(np.arange(min(data_column), max(data_column), 1.0))
plt.show()

Anpassen der Bin-Breite und Positionierung Die Darstellung des Histogramms kann weiter verbessert werden, indem die Bin-Breite und -Positionierung angepasst werden.

# Bin-Breite und Positionierung anpassen
plt.hist(data_column, bins=15, color='blue', edgecolor='black', facecolor='lightblue', rwidth=0.8)
plt.xlabel('Datenwerte')
plt.ylabel('Häufigkeit')
plt.title('Histogramm der Datenverteilung')
plt.grid(True)
plt.xticks(np.arange(min(data_column), max(data_column), 1.0))
plt.show()

Vergleich mehrerer Verteilungen

Mehrere Histogramme auf derselben Abbildung plotten Sie können eine einzelne Abbildung erstellen, auf der mehrere Histogramme angezeigt werden. Dadurch können Sie die Verteilungen verschiedener Datensätze oder Teilmengen Ihrer Daten vergleichen.

# Mehrere Histogramme auf derselben Abbildung plotten
plt.figure(figsize=(10, 6))
plt.hist(data_column, bins=20, color='blue', edgecolor='black', facecolor='lightblue', alpha=0.5, label='Datensatz A')
plt.hist(data_column * 2, bins=20, color='orange', edgecolor='black', facecolor='lightorange', alpha=0.5, label='Datensatz B')
plt.xlabel('Datenwerte')
plt.ylabel('Häufigkeit')
plt.title('Vergleich der Datenverteilungen')
plt.legend()
plt.show()

Histogramme mit Farben, Beschriftungen oder Legenden unterscheiden Wenn Sie mehrere Histogramme plotten, ist es wichtig, verschiedene Farben, Beschriftungen oder Legenden zu verwenden, um zwischen verschiedenen Datensätzen oder Verteilungen klar zu unterscheiden.

# Histogramme mit Farben und Legenden unterscheiden
plt.figure(figsize=(10, 6))
plt.hist([data_column, data_column * 2], bins=20, color=['blue', 'orange'], edgecolor='black', alpha=0.5, label=['Datensatz A', 'Datensatz B'])
plt.xlabel('Datenwerte')
plt.ylabel('Häufigkeit')
plt.title('Vergleich der Datenverteilungen')
plt.legend()
plt.show()

Histogramme für einen effektiven Vergleich ausrichten Um einen effektiven Vergleich mehrerer Histogramme zu ermöglichen, können Sie die x-Achsen ausrichten und sicherstellen, dass die Bin-Größen und Positionen in den verschiedenen Datensätzen einheitlich sind.

# Histogramme für einen effektiven Vergleich ausrichten
plt.figure(figsize=(10, 6))
bin_edges = np.linspace(min(data_column), max(data_column), 20)
plt.hist([data_column, data_column * 2], bins=bin_edges, color=['blue', 'orange'], edgecolor='black', alpha=0.5, label=['Datensatz A', 'Datensatz B'])
plt.xlabel('Datenwerte')
plt.ylabel('Häufigkeit')
plt.title('Vergleich der Datenverteilungen')
plt.legend()
plt.show()

Histogramm normalisieren

Unterschied zwischen Zähl- und Dichte-Histogrammen verstehen Histogramme können auf zwei verschiedene Arten dargestellt werden: als Zähl-Histogramm oder als Dichte-Histogramm. Das Zähl-Histogramm zeigt die Rohhäufigkeit der Datenpunkte in jedem Bin an, während das Dichte-Histogramm die Wahrscheinlichkeitsdichtefunktion der Datenverteilung darstellt.

# Zähl-Histogramm erstellen
plt.figure(figsize=(10, 6))
plt.hist(data_column, bins=20, color='blue', edgecolor='black', facecolor='lightblue')
plt.xlabel('Datenwerte')
plt.ylabel('Häufigkeit')
plt.title('Zähl-Histogramm der Datenverteilung')
plt.show()
 
# Dichte-Histogramm erstellen
plt.figure(figsize=(10, 6))
plt.hist(data_column, bins=20, color='blue', edgecolor='black', facecolor='lightblue', density=True)
plt.xlabel('Datenwerte')
plt.ylabel('Wahrscheinlichkeitsdichte')
plt.title('Dichte-Histogramm der Datenverteilung')
plt.show()

Histogramm normalisieren, um Wahrscheinlichkeitsdichten anzuzeigen Um ein Dichte-Histogramm zu erstellen, können Sie den density-Parameter in der plt.hist()-Funktion auf True setzen. Dadurch wird das Histogramm so normalisiert, dass die Fläche unter der Kurve die Wahrscheinlichkeitsdichtefunktion der Datenverteilung darstellt.

# Histogramm normalisieren, um Wahrscheinlichkeitsdichten anzuzeigen
plt.figure(figsize=(10, 6))
plt.hist(data_column, bins=20, color='blue', edgecolor='black', facecolor='lightblue', density=True)
plt.xlabel('Datenwerte')
plt.ylabel('Wahrscheinlichkeitsdichte')
plt.title('Normiertes Histogramm der Datenverteilung')
plt.show()

Normalisiertes Histogramm interpretieren Das normalisierte Histogramm bietet eine visuelle Darstellung der Wahrscheinlichkeitsdichtefunktion der Datenverteilung. Die Höhe jeder Säule entspricht der Wahrscheinlichkeitsdichte in diesem bestimmten Bin oder Intervall.

Kontrollfluss

Bedingte Anweisungen Bedingte Anweisungen in Python ermöglichen es Ihnen, verschiedene Codeblöcke basierend auf bestimmten Bedingungen auszuführen. Die häufigste bedingte Anweisung ist die if-elif-else-Anweisung.

x = 10
if x > 0:
    print("x ist positiv")
elif x < 0:
    print("x ist negativ")
else:
    print("x ist null")

In diesem Beispiel wird der Code "x ist positiv" ausgeben, weil die Bedingung x > 0 wahr ist.

Sie können auch die Operatoren and, or und not verwenden, um mehrere Bedingungen zu kombinieren:

age = 25
if age >= 18 and age < 65:
    print("Sie sind erwachsen")
else:
    print("Sie sind nicht erwachsen")

Schleifen Schleifen in Python ermöglichen es Ihnen, einen Codeblock wiederholt auszuführen. Die beiden häufigsten Schleifentypen sind for-Schleifen und while-Schleifen.

for-Schleifen Eine for-Schleife wird verwendet, um über eine Sequenz zu iterieren (wie eine Liste, ein Tupel oder ein String).

fruits = ["Apfel", "Banane", "Kirsche"]
for fruit in fruits:
    print(fruit)

Das gibt aus:

Apfel
Banane
Kirsche

Sie können auch die Funktion range() verwenden, um eine Sequenz von Zahlen zu erstellen, über die iteriert werden soll:

for i in range(5):
    print(i)

Das gibt aus:

0
1
2
3
4

while-Schleifen Eine while-Schleife führt einen Codeblock weiter aus, solange eine bestimmte Bedingung wahr ist.

count = 0
while count < 5:
    print(count)
    count += 1

Dies wird ausgegeben:

0
1
2
3
4

Sie können auch die break- und continue-Anweisungen verwenden, um den Ablauf einer Schleife zu steuern:

while True:
    name = input("Geben Sie Ihren Namen ein (oder 'q' zum Beenden): ")
    if name.lower() == 'q':
        break
    print(f"Hallo, {name}!")

Dies wird den Benutzer weiterhin zur Eingabe auffordern, bis er "q" eingibt, um zu beenden.

Funktionen

Funktionen in Python sind Blöcke von wiederverwendbarem Code, die eine bestimmte Aufgabe ausführen. Sie können Argumente enthalten und Werte zurückgeben.

def grüße(name):
    print(f"Hallo, {name}!")
 
grüße("Alice")
grüße("Bob")

Dies wird ausgegeben:

Hallo, Alice!
Hallo, Bob!

Sie können auch Funktionen mit Standardargumenten und Argumenten variabler Länge definieren:

def berechne_fläche(länge, breite, höhe=None):
    if höhe is None:
        return länge * breite
    else:
        return länge * breite * höhe
 
print(berechne_fläche(5, 10))       # Ausgabe: 50
print(berechne_fläche(2, 3, 4))     # Ausgabe: 24

Module und Pakete

Python bietet eine umfangreiche Standardbibliothek mit einer Vielzahl von Modulen und Paketen für verschiedene Aufgaben. Sie können diese Module importieren und die bereitgestellten Funktionen, Klassen und Variablen verwenden.

import math
print(math.pi)      # Ausgabe: 3.141592653589793
print(math.sqrt(9)) # Ausgabe: 3.0

Sie können auch bestimmte Funktionen oder Variablen aus einem Modul importieren:

from math import pi, sqrt
print(pi)      # Ausgabe: 3.141592653589793
print(sqrt(9)) # Ausgabe: 3.0

Pakete sind Sammlungen von verwandten Modulen. Sie können Pakete importieren und auf deren Module und Unterpakete zugreifen.

import os
print(os.path.join('home', 'user', 'file.txt')) # Ausgabe: 'home/user/file.txt'

Ausnahmebehandlung

Python verfügt über einen eingebauten Mechanismus zur Behandlung von Ausnahmen, mit dem Sie Fehler während der Ausführung Ihres Codes behandeln können.

try:
    result = 10 / 0
except ZeroDivisionError:
    print("Fehler: Division durch Null")

Dies wird ausgegeben:

Fehler: Division durch Null

Sie können auch mehrere Ausnahmen behandeln und den finally-Block verwenden, um Code auszuführen, unabhängig davon, ob eine Ausnahme aufgetreten ist.

try:
    num = int(input("Geben Sie eine Zahl ein: "))
    print(10 / num)
except ValueError:
    print("Fehler: Ungültige Eingabe")
except ZeroDivisionError:
    print("Fehler: Division durch Null")
finally:
    print("Dieser Code wird immer ausgeführt")

Datei Ein-/Ausgabe

Python bietet integrierte Funktionen zum Lesen aus und Schreiben in Dateien.

# Schreiben in eine Datei
with open("beispiel.txt", "w") as file:
    file.write("Hallo, Welt!")
 
# Lesen aus einer Datei
with open("beispiel.txt", "r") as file:
    inhalt = file.read()
    print(inhalt) # Ausgabe: Hallo, Welt!

Die with-Anweisung stellt sicher, dass die Datei ordnungsgemäß geschlossen wird, nachdem der Codeblock ausgeführt wurde.

Fazit

In diesem Tutorial haben Sie verschiedene Kontrollstrukturen, Funktionen, Module und Pakete, Ausnahmebehandlung sowie Datei Ein-/Ausgabe in Python kennengelernt. Diese Konzepte sind wesentlich für das Schreiben komplexerer und robusterer Python-Programme. Üben Sie und experimentieren Sie mit den bereitgestellten Codebeispielen, um Ihr Verständnis dieser Themen zu festigen.

MoeNagy Dev