Anpassen von Boxplots

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

In diesem Tutorial lernen wir, wie man Boxplots in Matplotlib anpassen kann. Boxplots sind eine beliebte Methode, um die Verteilung eines Datensatzes zu visualisieren. Sie werden auch als Box-and-Whisker-Plots bezeichnet und zeigen die Median, Quartile und Ausreißer der Daten. Wir werden verschiedene Beispiele durchgehen, um zu lernen, wie man Boxplots mit Matplotlib anpasst.

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

Importieren der erforderlichen Bibliotheken

Wir beginnen mit dem Importieren der erforderlichen Bibliotheken, nämlich Matplotlib und NumPy. Wir setzen auch einen Zufallszahlengenerator für NumPy, um sicherzustellen, dass unsere Ergebnisse reproduzierbar sind.

import matplotlib.pyplot as plt
import numpy as np

np.random.seed(19680801)

Daten generieren

Wir werden einige zufällige Daten generieren, die wir in unseren Beispielen verwenden. Wir werden die NumPy-Funktion random.lognormal() verwenden, um log-normalverteilte Daten mit einem Mittelwert von 1,5 und einer Standardabweichung von 1,75 zu generieren. Wir werden 37 Proben von 4 Variablen generieren und sie in der Variable data speichern. Wir werden auch eine Liste von Bezeichnungen für jede Variable erstellen.

data = np.random.lognormal(size=(37, 4), mean=1.5, sigma=1.75)
labels = list('ABCD')

Standard-Boxplot

Wir beginnen mit der Erstellung eines Standard-Boxplots, um die Daten zu visualisieren. Wir werden die Matplotlib-Funktion boxplot() verwenden und die Daten und Bezeichnungen als Argumente übergeben. Wir setzen auch den Titel des Diagramms mit der Funktion set_title().

fig, ax = plt.subplots()
ax.boxplot(data, labels=labels)
ax.set_title('Default Box Plot')
plt.show()

Einzelne Komponenten entfernen

Wir können einzelne Komponenten des Boxplots entfernen, indem wir die verschiedenen Schlüsselwortargumente verwenden, die in der boxplot()-Funktion zur Verfügung stehen. Beispielsweise können wir die Mittelwerte entfernen, indem wir showmeans auf False setzen. Wir können auch die Box und die Schnurrbögen entfernen, indem wir showbox und showcaps jeweils auf False setzen.

fig, axs = plt.subplots(nrows=2, ncols=2, figsize=(8, 8), sharey=True)
axs[0, 0].boxplot(data, labels=labels)
axs[0, 0].set_title('Default')

axs[0, 1].boxplot(data, labels=labels, showmeans=False)
axs[0, 1].set_title('No Means')

axs[1, 0].boxplot(data, labels=labels, showbox=False, showcaps=False)
axs[1, 0].set_title('No Box or Whiskers')

axs[1, 1].boxplot(data, labels=labels, showfliers=False)
axs[1, 1].set_title('No Outliers')

plt.show()

Anpassen der Boxplot-Styles

Wir können auch die Styles des Boxplots anpassen, indem wir die verschiedenen Schlüsselwortargumente verwenden, die in der boxplot()-Funktion zur Verfügung stehen. Beispielsweise können wir die Farbe und den Linienstil der Box ändern, indem wir boxprops setzen. Wir können auch den Stil der Medianen, Mittelwerte und Mittelwerlinien ändern, indem wir medianprops, meanprops und meanlineprops jeweils setzen.

fig, axs = plt.subplots(nrows=2, ncols=2, figsize=(8, 8), sharey=True)
axs[0, 0].boxplot(data, labels=labels)
axs[0, 0].set_title('Default')

boxprops = dict(linestyle='--', linewidth=2, color='red')
axs[0, 1].boxplot(data, labels=labels, boxprops=boxprops)
axs[0, 1].set_title('Custom Box')

medianprops = dict(linestyle='-', linewidth=2, color='blue')
meanprops = dict(marker='D', markeredgecolor='black', markerfacecolor='green')
meanlineprops = dict(linestyle='--', linewidth=2, color='red')
axs[1, 0].boxplot(data, labels=labels, medianprops=medianprops, meanprops=meanprops, meanline=True, meanlineprops=meanlineprops)
axs[1, 0].set_title('Custom Median, Mean, and Mean Line')

flierprops = dict(marker='o', markerfacecolor='red', markersize=8, markeredgecolor='none')
axs[1, 1].boxplot(data, labels=labels, flierprops=flierprops)
axs[1, 1].set_title('Custom Outliers')

plt.show()

Zusammenfassung

Boxplots sind eine ausgezeichnete Möglichkeit, die Verteilung eines Datensatzes zu visualisieren. Matplotlib bietet viele Anpassungsmöglichkeiten für Boxplots, wie das Entfernen einzelner Komponenten und das Anpassen der Styles der Komponenten. Indem wir diese Optionen verwenden, können wir Boxplots erstellen, die effektiv die Informationen vermitteln, die wir vermitteln möchten.