Notiz
Klicken Sie hier , um den vollständigen Beispielcode herunterzuladen
Boxplot-Schubladenfunktion #
Dieses Beispiel zeigt, wie vorberechnete Boxplot-Statistiken an die Boxplot-Schublade übergeben werden. Die erste Abbildung zeigt, wie einzelne Komponenten entfernt und hinzugefügt werden (beachten Sie, dass der Mittelwert der einzige Wert ist, der standardmäßig nicht angezeigt wird). Die zweite Abbildung zeigt, wie die Stile der Künstler angepasst werden können.
Eine gute allgemeine Referenz zu Boxplots und ihrer Geschichte finden Sie hier: http://vita.had.co.nz/papers/boxplots.pdf
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cbook as cbook
# fake data
np.random.seed(19680801)
data = np.random.lognormal(size=(37, 4), mean=1.5, sigma=1.75)
labels = list('ABCD')
# compute the boxplot stats
stats = cbook.boxplot_stats(data, labels=labels, bootstrap=10000)
Nachdem wir die Statistiken berechnet haben, können wir alles durchgehen und ändern. Nur um es zu beweisen, setze ich den Median jedes Satzes auf den Median aller Daten und verdopple die Mittelwerte
['label', 'mean', 'iqr', 'cilo', 'cihi', 'whishi', 'whislo', 'fliers', 'q1', 'med', 'q3']
Demonstrieren Sie, wie Sie die Anzeige verschiedener Elemente umschalten:
fig, axs = plt.subplots(nrows=2, ncols=3, figsize=(6, 6), sharey=True)
axs[0, 0].bxp(stats)
axs[0, 0].set_title('Default', fontsize=fs)
axs[0, 1].bxp(stats, showmeans=True)
axs[0, 1].set_title('showmeans=True', fontsize=fs)
axs[0, 2].bxp(stats, showmeans=True, meanline=True)
axs[0, 2].set_title('showmeans=True,\nmeanline=True', fontsize=fs)
axs[1, 0].bxp(stats, showbox=False, showcaps=False)
tufte_title = 'Tufte Style\n(showbox=False,\nshowcaps=False)'
axs[1, 0].set_title(tufte_title, fontsize=fs)
axs[1, 1].bxp(stats, shownotches=True)
axs[1, 1].set_title('notch=True', fontsize=fs)
axs[1, 2].bxp(stats, showfliers=False)
axs[1, 2].set_title('showfliers=False', fontsize=fs)
for ax in axs.flat:
ax.set_yscale('log')
ax.set_yticklabels([])
fig.subplots_adjust(hspace=0.4)
plt.show()
Demonstrieren Sie, wie Sie die verschiedenen Anzeigeelemente anpassen können:
boxprops = dict(linestyle='--', linewidth=3, color='darkgoldenrod')
flierprops = dict(marker='o', markerfacecolor='green', markersize=12,
linestyle='none')
medianprops = dict(linestyle='-.', linewidth=2.5, color='firebrick')
meanpointprops = dict(marker='D', markeredgecolor='black',
markerfacecolor='firebrick')
meanlineprops = dict(linestyle='--', linewidth=2.5, color='purple')
fig, axs = plt.subplots(nrows=2, ncols=2, figsize=(6, 6), sharey=True)
axs[0, 0].bxp(stats, boxprops=boxprops)
axs[0, 0].set_title('Custom boxprops', fontsize=fs)
axs[0, 1].bxp(stats, flierprops=flierprops, medianprops=medianprops)
axs[0, 1].set_title('Custom medianprops\nand flierprops', fontsize=fs)
axs[1, 0].bxp(stats, meanprops=meanpointprops, meanline=False,
showmeans=True)
axs[1, 0].set_title('Custom mean\nas point', fontsize=fs)
axs[1, 1].bxp(stats, meanprops=meanlineprops, meanline=True,
showmeans=True)
axs[1, 1].set_title('Custom mean\nas line', fontsize=fs)
for ax in axs.flat:
ax.set_yscale('log')
ax.set_yticklabels([])
fig.suptitle("I never said they'd be pretty")
fig.subplots_adjust(hspace=0.4)
plt.show()
Verweise
In diesem Beispiel wird die Verwendung der folgenden Funktionen, Methoden, Klassen und Module gezeigt:
Gesamtlaufzeit des Skripts: (0 Minuten 2,236 Sekunden)