Hinweis
Zum Ende springen, um den vollständigen Beispielcode herunterzuladen.
Box-Plot vs. Violin-Plot Vergleich#
Beachten Sie, dass Violin-Plots, obwohl sie eng mit Tukey's (1977) Box-Plots verwandt sind, nützliche Informationen wie die Verteilung der Stichprobendaten (Dichtespuren) hinzufügen.
Standardmäßig zeigen Box-Plots Datenpunkte außerhalb des 1,5-fachen des Interquartilsabstands als Ausreißer oberhalb oder unterhalb der Whisker an, während Violin-Plots den gesamten Datenbereich anzeigen.
Eine gute allgemeine Referenz zu Box-Plots und ihrer Geschichte finden Sie hier: http://vita.had.co.nz/papers/boxplots.pdf
Violin-Plots erfordern matplotlib >= 1.4.
Weitere Informationen zu Violin-Plots finden Sie in einem hervorragenden Abschnitt in der scikit-learn-Dokumentation: https://scikit-learn.de/stable/modules/density.html
import matplotlib.pyplot as plt
import numpy as np
fig, axs = plt.subplots(nrows=1, ncols=2, figsize=(9, 4))
# Fixing random state for reproducibility
np.random.seed(19680801)
# generate some random test data
all_data = [np.random.normal(0, std, 100) for std in range(6, 10)]
# plot violin plot
axs[0].violinplot(all_data,
showmeans=False,
showmedians=True)
axs[0].set_title('Violin plot')
# plot box plot
axs[1].boxplot(all_data)
axs[1].set_title('Box plot')
# adding horizontal grid lines
for ax in axs:
ax.yaxis.grid(True)
ax.set_xticks([y + 1 for y in range(len(all_data))],
labels=['x1', 'x2', 'x3', 'x4'])
ax.set_xlabel('Four separate samples')
ax.set_ylabel('Observed values')
plt.show()
Referenzen
Die Verwendung der folgenden Funktionen, Methoden, Klassen und Module wird in diesem Beispiel gezeigt