Mehrere Histogramme mit Matplotlib erstellen

PythonPythonBeginner
Jetzt üben

This tutorial is from open-source community. Access the source code

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

Histogramme sind eine großartige Möglichkeit, die Verteilung eines Datensatzes zu visualisieren, und Matplotlib ist eine der beliebtesten Python-Bibliotheken zur Erstellung von Datenvisualisierungen. In diesem Lab verwenden wir Matplotlib, um nebeneinander liegende Histogramme für mehrere Datensätze zu erstellen.

Tipps für die VM

Nachdem der VM-Start abgeschlossen ist, klicken Sie in der oberen linken Ecke, um zur Registerkarte Notebook zu wechseln und Jupyter Notebook für die Übung zu öffnen.

Manchmal müssen Sie einige Sekunden warten, bis Jupyter Notebook vollständig geladen ist. Die Validierung von Vorgängen kann aufgrund von Einschränkungen in Jupyter Notebook nicht automatisiert werden.

Wenn Sie bei der Lernphase Probleme haben, können Sie Labby gerne fragen. Geben Sie nach der Sitzung Feedback, und wir werden das Problem für Sie prompt beheben.

Importieren der erforderlichen Bibliotheken

Zunächst müssen wir die erforderlichen Bibliotheken für unseren Code importieren. Wir werden Matplotlib und NumPy für unsere Histogramme verwenden:

import matplotlib.pyplot as plt
import numpy as np

Beispiel-Datensätze erstellen

Als nächstes werden wir Beispiel-Datensätze erstellen, die wir für unsere Histogramme verwenden. Wir werden drei Datensätze mit jeweils 387 Datenpunkten erstellen:

np.random.seed(19680801)
number_of_data_points = 387
labels = ["A", "B", "C"]
data_sets = [np.random.normal(0, 1, number_of_data_points),
             np.random.normal(6, 1, number_of_data_points),
             np.random.normal(-3, 1, number_of_data_points)]

Größen für das Plotten berechnen

Bevor wir unsere Histogramme erstellen können, müssen wir einige Größen für das Plotten berechnen. Wir werden den Wertebereich unserer Datensätze, die gruppierten Datensätze, die maximalen Bin-Werte und die x-Positionen für jedes Histogramm berechnen:

hist_range = (np.min(data_sets), np.max(data_sets))
number_of_bins = 20
binned_data_sets = [
    np.histogram(d, range=hist_range, bins=number_of_bins)[0]
    for d in data_sets
]
binned_maximums = np.max(binned_data_sets, axis=1)
x_locations = np.arange(0, sum(binned_maximums), np.max(binned_maximums))

Die Histogramme plotten

Jetzt, nachdem wir die erforderlichen Größen für das Plotten berechnet haben, können wir unsere Histogramme erstellen. Wir werden die barh-Methode verwenden, um horizontale Balken für jedes Histogramm zu plotten:

## Die Bin-Umrandungen sind für alle Histogramme gleich
bin_edges = np.linspace(hist_range[0], hist_range[1], number_of_bins + 1)
heights = np.diff(bin_edges)
centers = bin_edges[:-1] + heights / 2

## Gehen Sie durch und plotten Sie jedes Histogramm
fig, ax = plt.subplots()
for x_loc, binned_data in zip(x_locations, binned_data_sets):
    lefts = x_loc - 0.5 * binned_data
    ax.barh(centers, binned_data, height=heights, left=lefts)

ax.set_xticks(x_locations, labels)
ax.set_ylabel("Datenwerte")
ax.set_xlabel("Datensätze")

Die Histogramme anzeigen

Schließlich können wir unsere Histogramme mit der show-Methode anzeigen:

plt.show()

Zusammenfassung

In diesem Lab haben wir gelernt, wie man mit Matplotlib nebeneinander liegende Histogramme für mehrere Datensätze erstellt. Wir haben die erforderlichen Größen für das Plotten berechnet und die barh-Methode verwendet, um horizontale Balken für jedes Histogramm zu erstellen. Mit diesen Fähigkeiten können wir informative Visualisierungen unserer Daten erstellen, um Einblicke zu gewinnen und unsere Ergebnisse an andere zu kommunizieren.