Datos de muestra

geom_errorbar requiere un data frame con un valor central y los límites inferior y superior. Aquí calculamos la media y la desviación típica de Sepal.Length por especie a partir del dataset iris.

# install.packages("dplyr")
library(dplyr)

df <- iris |>
  group_by(Species) |>
  summarise(
    mean_sl = mean(Sepal.Length),
    sd_sl   = sd(Sepal.Length)
  )

geom_errorbar()

Mapea ymin e ymax dentro de aes() para definir los límites inferior y superior de cada barra. Aquí usamos media ± 1 DT.

# install.packages("ggplot2")
library(ggplot2)

ggplot(df, aes(x = Species, y = mean_sl)) +
  geom_errorbar(aes(ymin = mean_sl - sd_sl,
                    ymax = mean_sl + sd_sl))

Barras de error básicas en ggplot2 con geom_errorbar

width

Controlar el ancho de los extremos de las barras de error en ggplot2

width controla el tamaño de los extremos horizontales. El valor por defecto es bastante amplio — 0.2 es una elección habitual para un aspecto más limpio.

# install.packages("ggplot2")
library(ggplot2)

ggplot(df, aes(x = Species, y = mean_sl)) +
  geom_errorbar(aes(ymin = mean_sl - sd_sl,
                    ymax = mean_sl + sd_sl),
                width = 0.2)

Con un gráfico de barras

El uso más habitual de geom_errorbar es sobre un gráfico de barras. Añade geom_col() primero para que las barras queden detrás de las barras de error.

# install.packages("ggplot2")
library(ggplot2)

ggplot(df, aes(x = Species, y = mean_sl)) +
  geom_col(fill = "steelblue", alpha = 0.7) +
  geom_errorbar(aes(ymin = mean_sl - sd_sl,
                    ymax = mean_sl + sd_sl),
                width = 0.2)

Barras de error sobre un gráfico de barras en ggplot2

Con puntos

Barras de error combinadas con puntos en ggplot2

Dibuja la barra de error primero y el punto encima para un gráfico de puntos con intervalos de confianza limpio.

# install.packages("ggplot2")
library(ggplot2)

ggplot(df, aes(x = Species, y = mean_sl)) +
  geom_errorbar(aes(ymin = mean_sl - sd_sl,
                    ymax = mean_sl + sd_sl),
                width = 0.2) +
  geom_point(size = 3, color = "steelblue")

Con un gráfico de líneas

Combina geom_line(), geom_errorbar() y geom_point() para mostrar la incertidumbre a lo largo del tiempo.

# install.packages("ggplot2")
library(ggplot2)

df_time <- data.frame(
  year   = 2018:2023,
  mean_y = c(3.2, 3.8, 4.1, 3.9, 4.5, 4.8),
  sd_y   = c(0.5, 0.4, 0.6, 0.5, 0.4, 0.3)
)

ggplot(df_time, aes(x = year, y = mean_y)) +
  geom_line() +
  geom_errorbar(aes(ymin = mean_y - sd_y,
                    ymax = mean_y + sd_y),
                width = 0.2) +
  geom_point(size = 2)

Barras de error sobre un gráfico de líneas en ggplot2 mostrando incertidumbre temporal

geom_errorbarh()

Barras de error horizontales en ggplot2 con geom_errorbarh

Usa geom_errorbarh() para barras de error horizontales. Intercambia x e y en aes() y sustituye ymin/ymax por xmin/xmax. El tamaño de los extremos se controla con height en lugar de width.

# install.packages("ggplot2")
library(ggplot2)

ggplot(df, aes(y = Species, x = mean_sl)) +
  geom_errorbarh(aes(xmin = mean_sl - sd_sl,
                     xmax = mean_sl + sd_sl),
                 height = 0.2) +
  geom_point(size = 3, color = "steelblue")

Barras de error agrupadas

Cuando hay varios grupos por categoría, usa position_dodge() tanto en geom_errorbar() como en geom_point() con el mismo ancho de separación para que queden alineados.

# install.packages("ggplot2")
library(ggplot2)

ggplot(df_group, aes(x = group, y = mean_y,
                     color = condition)) +
  geom_errorbar(aes(ymin = mean_y - sd_y,
                    ymax = mean_y + sd_y),
                width = 0.2,
                position = position_dodge(0.5)) +
  geom_point(size = 3,
             position = position_dodge(0.5))

Barras de error agrupadas con position_dodge en ggplot2

Color, grosor y tipo de línea

Barras de error personalizadas con color grosor y tipo de línea en ggplot2

Pasa color, linewidth y linetype fuera de aes() para aplicarlos a todas las barras a la vez.

# install.packages("ggplot2")
library(ggplot2)

ggplot(df, aes(x = Species, y = mean_sl)) +
  geom_errorbar(aes(ymin = mean_sl - sd_sl,
                    ymax = mean_sl + sd_sl),
                width = 0.2,
                color = "steelblue",
                linewidth = 0.8,
                linetype = "dashed")
MASTER - STATISTICS DOT COM

Master Statistics

Aprende estadística desde lo básico hasta técnicas avanzadas, explicado con claridad

Ir al sitio
R PACKAGES IO

R Packages

Explora y descubre miles de paquetes, funciones y datasets de R

Ir al sitio

También te puede interesar