Comparación de diagrama de caja y diagrama de violín #

Tenga en cuenta que aunque los diagramas de violín están estrechamente relacionados con los diagramas de caja de Tukey (1977), agregan información útil, como la distribución de los datos de la muestra (traza de densidad).

De forma predeterminada, los diagramas de caja muestran puntos de datos fuera de 1,5 * del rango intercuartílico como valores atípicos por encima o por debajo de los bigotes, mientras que los diagramas de violín muestran el rango completo de los datos.

Una buena referencia general sobre diagramas de caja y su historia se puede encontrar aquí: http://vita.had.co.nz/papers/boxplots.pdf

Los diagramas de violín requieren matplotlib >= 1.4.

Para obtener más información sobre diagramas de violín, los documentos de scikit-learn tienen una excelente sección: 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()
Diagrama de violín, Diagrama de caja

Referencias

En este ejemplo se muestra el uso de las siguientes funciones, métodos, clases y módulos:

Galería generada por Sphinx-Gallery