Copia el siguiente código para obtener los datos que se utilizarán en los ejemplos de este tutorial.
import numpy as np
import seaborn as sns
import random
# Simulación de datos
rng = np.random.RandomState(5)
variable = rng.normal(0, 1, size = 100)
random.seed(5)
grupo = random.choices(["G1", "G2", "G3"], k = 100)
grupo2 = random.choices(["A", "B"], k = 100)
df = {'variable': variable, 'grupo': grupo, 'grupo2': grupo2}
boxplot
Pasando una variable numérica al argumento x
de la función boxplot
puedes crear un gráfico de cajas y bigotes en seaborn. Ten en cuenta que tus datos pueden ser una variable o una columna de un data frame.
import seaborn as sns
# Box plot
sns.boxplot(x = variable)
# Equivalente a:
sns.boxplot(x = "variable", data = df)
Vertical
Si prefieres un gráfico de cajas vertical tendrás que pasar tus datos al argumento y
en lugar de a x
.
import seaborn as sns
# Box plot
sns.boxplot(y = variable)
Color de fondo de la caja
El color de la caja es por defecto azul, pero puedes elegir cualquier otro color con el argumento color
de la función.
import seaborn as sns
# Box plot
sns.boxplot(x = variable,
color = "orange")
Personalización avanzada
Recuerda que la función proporciona argumentos adicionales para personalizar el gráfico. Algunos de ellos se destacan en el siguiente bloque de código.
import seaborn as sns
# Box plot
sns.boxplot(x = variable,
fliersize = 10, # Tamaño de los atípicos
linewidth = 3, # Grosor de las líneas
saturation = 0.95) # Saturación del color
Box plot por grupo
Si pasas una variable categórica y una numérica a la función puedes crear un gráfico de cajas por grupo. En caso de que quieras crear un box plot por grupo horizontal pasa la variable numérica a x
y la categórica a y
.
import seaborn as sns
# Box plot por grupo
sns.boxplot(x = variable,
y = grupo)
Orientación
Si prefieres un gráfico de cajas vertical por grupo intercambia los argumentos, tal y como se muestra en el siguiente ejemplo.
import seaborn as sns
# Box plot por grupo
sns.boxplot(y = variable,
x = grupo)
Orden
Ten en cuenta que el argumento order
controla el orden de los grupos. Si quieres cambiar el orden por defecto (que se basa en el orden de apariencia de los grupos en la variable) pasa una lista al argumento con el orden deseado.
import seaborn as sns
# Box plot por grupo
sns.boxplot(y = variable,
x = grupo,
order = ["G1", "G2", "G3"])
Paleta de colores
El argumento palette
controla los colores de los box plots. Puedes pasar una paleta de colores predefinida, como en el ejemplo siguiente, o un diccionario con los colores para cada grupo.
import seaborn as sns
# Box plot por grupo
sns.boxplot(y = variable,
x = grupo,
palette = "Set3")
Box plot por grupo y subgrupo
Por último, si pasas otra variable categórica a la función pero al argumento hue
, puedes crear un box plot por grupo y subgrupo.
import seaborn as sns
# Box plot por grupo
sns.boxplot(y = variable,
x = grupo,
hue = grupo2)
También te puede interesar