Hinweis
Gehen Sie zum Ende, um den vollständigen Beispielcode herunterzuladen.
Künstleranpassung in Boxplots#
Dieses Beispiel zeigt, wie die verschiedenen Schlüsselwortargumente verwendet werden können, um Boxplots vollständig anzupassen. Die erste Abbildung zeigt, wie einzelne Komponenten entfernt und hinzugefügt werden können (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. Sie zeigt auch, wie die Grenze der Whisker auf bestimmte Perzentile gesetzt wird (unten rechts in der Achse).
Eine gute allgemeine Referenz zu Boxplots und ihrer Geschichte finden Sie hier: https://vita.had.co.nz/papers/boxplots.pdf
import matplotlib.pyplot as plt
import numpy as np
# fake data
np.random.seed(19680801)
data = np.random.lognormal(size=(37, 4), mean=1.5, sigma=1.75)
labels = list('ABCD')
fs = 10 # fontsize
Demonstriert, wie die Anzeige verschiedener Elemente umgeschaltet werden kann
fig, axs = plt.subplots(nrows=2, ncols=3, figsize=(6, 6), sharey=True)
axs[0, 0].boxplot(data, tick_labels=labels)
axs[0, 0].set_title('Default', fontsize=fs)
axs[0, 1].boxplot(data, tick_labels=labels, showmeans=True)
axs[0, 1].set_title('showmeans=True', fontsize=fs)
axs[0, 2].boxplot(data, tick_labels=labels, showmeans=True, meanline=True)
axs[0, 2].set_title('showmeans=True,\nmeanline=True', fontsize=fs)
axs[1, 0].boxplot(data, tick_labels=labels, 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].boxplot(data, tick_labels=labels, notch=True, bootstrap=10000)
axs[1, 1].set_title('notch=True,\nbootstrap=10000', fontsize=fs)
axs[1, 2].boxplot(data, tick_labels=labels, 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()

Demonstriert, wie die Anzeige verschiedener Elemente angepasst werden kann
boxprops = dict(linestyle='--', linewidth=3, color='darkgoldenrod')
flierprops = dict(marker='o', markerfacecolor='green', markersize=12,
markeredgecolor='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=3, figsize=(6, 6), sharey=True)
axs[0, 0].boxplot(data, boxprops=boxprops)
axs[0, 0].set_title('Custom boxprops', fontsize=fs)
axs[0, 1].boxplot(data, flierprops=flierprops, medianprops=medianprops)
axs[0, 1].set_title('Custom medianprops\nand flierprops', fontsize=fs)
axs[0, 2].boxplot(data, whis=(0, 100))
axs[0, 2].set_title('whis=(0, 100)', fontsize=fs)
axs[1, 0].boxplot(data, meanprops=meanpointprops, meanline=False,
showmeans=True)
axs[1, 0].set_title('Custom mean\nas point', fontsize=fs)
axs[1, 1].boxplot(data, meanprops=meanlineprops, meanline=True,
showmeans=True)
axs[1, 1].set_title('Custom mean\nas line', fontsize=fs)
axs[1, 2].boxplot(data, whis=[15, 85])
axs[1, 2].set_title('whis=[15, 85]\n#percentiles', 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()
Referenzen
Die Verwendung der folgenden Funktionen, Methoden, Klassen und Module wird in diesem Beispiel gezeigt
Gesamtlaufzeit des Skripts: (0 Minuten 3,634 Sekunden)