Este post viene código en python para hacer y personalizar uno de los gráficos más potentes y simples que existen. Puedes replicar todo lo que viene aquí en una notebook en
* Guía para comenzar con python
* Guía de estadística con Python
* Visualización con Python (Este post)
* Guía de regresión lineal con Python (próximamente)
¿Qué son los diagrama de caja y bigote?
Son una forma gráfica y estandarizada de mostrar la distribución de los datos basado en 5 números clave:
- Media (Q2). Es el valor medio de nuestra información.
- Mínimo y máximo. Estos generan las patitas en los extremos del gráfico.
- Primer y Tercer cuartil (Percentil 25 y 75, respectivamente).
En ocasiones el gráfico mostrará algunos puntos adicionales, que se consideran los valores atípicos (outliers). El siguiente gráfico te puede ayudar a identificar estos elementos.
¿Para qué se usan?
Los gráficos de caja y bigotes se usan para
- Identificar valores atípicos y anomalías en los datos.
- Encontrar sesgos en los datos
- Entender de un vistazo los rangos que ocupa la información y cómo se distribuye.
Se pueden crear gráficos con varios diagramas de caja y bigotes. Estos ayudan a realizar una comparación de los datos y su distribución y compararlos por clasificación.
Cómo hacer un gráfico de caja y bigotes en Python
Comencemos por la creación de dos conjuntos de datos. Para tener certeza de antemano de la forma en la que se distribuyen los datos, usaremos una simulación.
El siguiente bloque de código crea dos arreglos de datos distribuidos normalmente alrededor de cero. Para diferenciarlos, les sumamos y restamos una unidad.
import numpy as np
np.random.seed(1)
b1 = np.random.randn(100) - 1
b2 = np.random.randn(100) + 1
Listo. Ahora podemos visualizar los gráficos que generamos. Usaremos el módulo maplotlib.pyplot
para esto. Veamos cómo se ve una de las variables.
import matplotlib.pyplot as plt
plt.boxplot(x = b1, vert = False)
Veamos el gráfico que generó y comparemos con lo que sabemos que hace el diagrama según la definición anterior. Primero, obtengamos la media, representada en la línea roja del centro.
print(np.median(b1))
# -0.9359260884377059
Como definimos la variable b1
, esperaríamos que la mediana estaría cercana a -1. Entre más grande sea la simulación, este número se debería acercar aún más.
Leer el artículo completo
Registrarse ahora para leer el artículo completo y acceder a todos los artículos por solo suscriptores pagos.
Suscribirse