Los siguientes datos representan los valores que toma una variable a lo largo de tres grupos y dos subgrupos. Estos datos serán usados como datos de muestra a lo largo de este tutorial.
import numpy as np
import seaborn as sns
import random
# Simulación de datos
rng = np.random.RandomState(0)
variable = rng.normal(20, 1, size = 50)
random.seed(0)
grupo = random.choices(["G1", "G2", "G3"], k = 50)
grupo2 = random.choices(["A", "B"], k = 50)
df = {'variable': variable, 'grupo': grupo, 'grupo2': grupo2}
barplot
La función barplot
permite crear gráficos de barras en seaborn. Esta función calcula la media para cada variable categórica y la representa con barras, así como sus intervalos de confianza con barras de error. Usa la función countplot
para crear un gráfico de barras que muestre el conteo para cada categoría.
import seaborn as sns
# Gráfico de barras
sns.barplot(x = grupo, y = variable)
# Equivalente a:
sns.barplot(x = "grupo", y = "variable", data = df)
Si no quieres utilizar la media como estimador puedes pasar otra función al argumento estimator
.
Bar plot horizontal
Si quieres crear un gráfico de barras horizontal tan solo necesitas intercambiar las variables de entrada, pasando la variable categórica a y
.
import seaborn as sns
# Gráfico de barras horizontal
sns.barplot(x = variable, y = grupo)
Orden
Ten en cuenta que el orden por defecto de las barras depende del orden de aparición de los grupos de la variable. Si quieres sobrescribir el orden pasa una lista con el orden que quieras al argumento order
.
import seaborn as sns
sns.barplot(x = grupo, y = variable,
order = ["G1", "G2", "G3"])
Grafico de barras por subgrupo
Si tienes otra variable categórica que divide las categorías en subcategorías puedes pasarla al argumento hue
, de modo que se creará un gráfico de barras en base a ambas variables categóricas.
import seaborn as sns
# Gráfico de barras por grupo y subgrupo
sns.barplot(x = grupo, y = variable,
hue = grupo2)
Eliminar las barras de error
Las barras de error se muestran sobre cada barra por defecto, pero es posible eliminarlas estableciendo el argumento ci
como False
. También puedes establecer este argumento como "sd"
de forma que las barras de error se calcularán en base a la desviación típica de los datos.
import seaborn as sns
sns.barplot(x = grupo, y = variable,
ci = None)
Agregar segmentos horizontales a las barras de error
Si quieres añadir los segmentos horizontales que acotan las barras de error puedes seleccionar su tamaño con el argumento capsize
, tal y como se muestra a continuación.
import seaborn as sns
sns.barplot(x = grupo, y = variable,
capsize = 0.25)
Color y grosor de las barras de error
Además, es posible cambiar el grosor y el color de las barras de error con errwidth
y errcolor
, respectivamente.
import seaborn as sns
sns.barplot(x = grupo, y = variable,
errwidth = 1,
errcolor = "red")
Mismo color para todas las barras
Si quieres establecer el mismo color para todas las barras elige un color con el argumento color
. Recuerda que puedes cambiar su saturación con el argumento saturation
.
import seaborn as sns
sns.barplot(x = grupo, y = variable,
color = "darkseagreen",
saturation = 0.75)
Paleta de colores
Una alternativa es seleccionar una paleta de colores o pasar un diccionario con un color para cada grupo al argumento palette
de la función.
import seaborn as sns
sns.barplot(x = grupo, y = variable,
palette = "Blues_d")
Personalización avanzada
Por último, cabe destacar que existen otros argumentos para personalizar el estilo del gráfico, como edgecolor
, para cambiar el color de los bordes, entre otros.
import seaborn as sns
sns.barplot(x = grupo, y = variable,
linewidth = 1,
facecolor = "white",
edgecolor = "red")
También te puede interesar