Noter
Cliquez ici pour télécharger l'exemple de code complet
Comparaison entre diagramme en boîte et diagramme en violon #
Notez que bien que les diagrammes en violon soient étroitement liés aux diagrammes en boîte de Tukey (1977), ils ajoutent des informations utiles telles que la distribution des données d'échantillon (trace de densité).
Par défaut, les diagrammes en boîte affichent les points de données en dehors de 1,5 * la plage interquartile sous forme de valeurs aberrantes au-dessus ou en dessous des moustaches, tandis que les diagrammes en violon affichent toute la plage des données.
Une bonne référence générale sur les boxplots et leur histoire peut être trouvée ici : http://vita.had.co.nz/papers/boxplots.pdf
Les parcelles de violon nécessitent matplotlib >= 1.4.
Pour plus d'informations sur les parcelles de violon, les documents scikit-learn ont une excellente section : https://scikit-learn.org/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()
Références
L'utilisation des fonctions, méthodes, classes et modules suivants est illustrée dans cet exemple :