Erstellen benutzerdefinierter Füllfarben für Boxplots

Beginner

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

Einführung

In diesem Tutorial wird Ihnen der Prozess des Erstellens benutzerdefinierter Füllfarben für Boxplots mit Python Matplotlib gezeigt. Boxplots sind ein Diagrammtyp, der zur Darstellung der Verteilung eines Datensatzes verwendet wird. Sie zeigen die Median, Quartile und Ausreißer des Datensatzes. In diesem Tutorial werden wir die boxplot()-Funktion in Matplotlib verwenden, um zwei Arten von Boxplots (rechteckig und gekerbt) zu erstellen und sie mit benutzerdefinierten Farben zu füllen.

VM-Tipps

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 der 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

Wir beginnen mit dem Importieren der erforderlichen Bibliotheken. In diesem Beispiel werden wir die Bibliotheken numpy und matplotlib.pyplot verwenden.

import matplotlib.pyplot as plt
import numpy as np

Erstellen von zufälligen Testdaten

Als nächstes werden wir zufällige Testdaten mit der numpy-Bibliothek erstellen. Wir werden 3 Datensätze generieren, von denen jeder eine unterschiedliche Standardabweichung hat.

np.random.seed(19680801)
all_data = [np.random.normal(0, std, size=100) for std in range(1, 4)]
labels = ['x1', 'x2', 'x3']

Erstellen eines rechteckigen Boxplots

Wir werden nun einen rechteckigen Boxplot mit der boxplot()-Funktion in Matplotlib erstellen. Wir werden den Parameter patch_artist auf True setzen, um die Box mit Farbe zu füllen.

fig, ax1 = plt.subplots(figsize=(9, 4))
bplot1 = ax1.boxplot(all_data,
                     vert=True,  ## vertikale Boxausrichtung
                     patch_artist=True,  ## mit Farbe füllen
                     labels=labels)  ## x-Achsenbeschriftungen
ax1.set_title('Rechteckiger Boxplot')

Erstellen eines gekerbten Boxplots

Wir werden nun einen gekerbten Boxplot mit der boxplot()-Funktion erstellen. Wir werden den Parameter notch auf True setzen, um einen gekerbten Boxplot zu erstellen.

fig, ax2 = plt.subplots(figsize=(9, 4))
bplot2 = ax2.boxplot(all_data,
                     notch=True,  ## Kerbform
                     vert=True,  ## vertikale Boxausrichtung
                     patch_artist=True,  ## mit Farbe füllen
                     labels=labels)  ## x-Achsenbeschriftungen
ax2.set_title('Gekerbter Boxplot')

Füllen der Boxplots mit benutzerdefinierten Farben

Als nächstes werden wir die Boxplots mit benutzerdefinierten Farben füllen. Wir werden eine Liste von Farben erstellen und eine Schleife verwenden, um jede Box mit einer anderen Farbe zu füllen.

colors = ['pink', 'lightblue', 'lightgreen']
for bplot in (bplot1, bplot2):
    for patch, color in zip(bplot['boxes'], colors):
        patch.set_facecolor(color)

Hinzufügen horizontaler Gitternetzlinien

Schließlich werden wir horizontalen Gitternetzlinien zu den Boxplots mit der yaxis.grid()-Funktion hinzufügen.

for ax in [ax1, ax2]:
    ax.yaxis.grid(True)
    ax.set_xlabel('Drei separate Proben')
    ax.set_ylabel('Beobachtete Werte')

plt.show()

Zusammenfassung

In diesem Tutorial haben wir gelernt, wie man benutzerdefinierte Füllfarben für Boxplots mit Python Matplotlib erstellt. Wir haben begonnen, indem wir die erforderlichen Bibliotheken importiert, zufällige Testdaten erstellt und dann rechteckige und gekerbte Boxplots erstellt. Anschließend haben wir die Boxplots mit benutzerdefinierten Farben gefüllt und horizontale Gitternetzlinien hinzugefügt. Boxplots sind ein nützliches Visualisierungstool zum Anzeigen der Datenverteilung, und benutzerdefinierte Füllfarben können verwendet werden, um sie visuell ansprechender zu gestalten.