Einführung
In diesem Lab werden wir lernen, wie man Boxplots aus Fehlerbalken mit PatchCollection erstellt. Boxplots eignen sich gut zur Darstellung des Bereichs und der Verteilung von Daten. Indem wir einen Rechteck-Patch hinzufügen, das durch die Grenzen der Balken in beiden x- und y-Richtungen definiert ist, können wir einen visuell ansprechenderen Fehlerbalkendiagramm erstellen.
Tipps für die virtuelle Maschine
Nachdem der Start der virtuellen Maschine abgeschlossen ist, klicken Sie in der oberen linken Ecke, um zur Registerkarte Notebook zu wechseln und Jupyter Notebook für die Übung zu nutzen.
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.
Bibliotheken importieren
Wir werden zunächst die erforderlichen Bibliotheken importieren, einschließlich von numpy und matplotlib.
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.collections import PatchCollection
from matplotlib.patches import Rectangle
Daten vorbereiten
Anschließend werden wir die Daten für unseren Boxplot vorbereiten. Wir werden einige Platzhalterdaten für die x- und y-Werte sowie die Fehlerwerte erstellen.
## Anzahl der Datenpunkte
n = 5
## Platzhalterdaten
np.random.seed(19680801)
x = np.arange(0, n, 1)
y = np.random.rand(n) * 5.
## Dummy-Fehler (oben und unten)
xerr = np.random.rand(2, n) + 0.1
yerr = np.random.rand(2, n) + 0.2
Funktion für Fehlerboxen erstellen
Wir werden nun eine Funktion namens make_error_boxes erstellen, die den Rechteck-Patch erstellt, der durch die Grenzen der Balken in beiden x- und y-Richtungen definiert ist.
def make_error_boxes(ax, xdata, ydata, xerror, yerror, facecolor='r',
edgecolor='none', alpha=0.5):
## Schleife über die Datenpunkte; erstelle Box aus Fehlern an jedem Punkt
errorboxes = [Rectangle((x - xe[0], y - ye[0]), xe.sum(), ye.sum())
for x, y, xe, ye in zip(xdata, ydata, xerror.T, yerror.T)]
## Erstelle Patch-Collection mit der angegebenen Farbe/Alpha
pc = PatchCollection(errorboxes, facecolor=facecolor, alpha=alpha,
edgecolor=edgecolor)
## Füge die Collection zur Achse hinzu
ax.add_collection(pc)
## Plotte die Fehlerbalken
artists = ax.errorbar(xdata, ydata, xerr=xerror, yerr=yerror,
fmt='none', ecolor='k')
return artists
Figur und Achsen erstellen
Wir werden nun die Figur und die Achsen für unseren Boxplot mit plt.subplots() erstellen.
## Create figure and axes
fig, ax = plt.subplots(1)
Funktion aufrufen, um Fehlerboxen zu erstellen
Wir werden nun die Funktion make_error_boxes() aufrufen, um die Fehlerboxen in unserem Diagramm zu erstellen.
## Call function to create error boxes
_ = make_error_boxes(ax, x, y, xerr, yerr)
Zeige das Diagramm an
Schließlich werden wir das Diagramm mit plt.show() anzeigen.
plt.show()
Zusammenfassung
In diesem Lab haben wir gelernt, wie man Boxplots aus Fehlerbalken mit PatchCollection in Matplotlib erstellt. Indem wir einen Rechteck-Patch hinzufügen, der durch die Grenzen der Balken in beiden x- und y-Richtungen definiert ist, konnten wir einen visuell ansprechenderen Fehlerbalkendiagramm erstellen.