ggplot2 permite personalizar el tipo de las líneas de tus gráficos, estableciendo el mismo tipo para todas las líneas o uno diferente para cada grupo. En esta guía encontrarás la lista completa de los tipos de línea disponibles y cómo utilizarlos. Si usas los gráficos de R base consulta los tipos de línea en R base y si quieres personalizar los puntos consulta las formas en ggplot2.

Tipos de línea en ggplot2

Lista de tipos de línea

El tipo de las líneas se establece con el argumento linetype. Existen siete tipos de línea, que se pueden especificar por su nombre o por un número del 0 al 6: "blank" (0), "solid" (1, por defecto), "dashed" (2), "dotted" (3), "dotdash" (4), "longdash" (5) y "twodash" (6).

lines <- data.frame(linetype = c("solid", "dashed", "dotted", "dotdash",
                                 "longdash", "twodash"),
                    y = 6:1)

ggplot(lines, aes(x = 0, xend = 1, y = y, yend = y)) +
  geom_segment(aes(linetype = linetype), linewidth = 1) +
  geom_text(aes(label = paste0(linetype, " (", 1:6, ")")), x = 0, nudge_y = 0.3, hjust = 0) +
  scale_linetype_identity() +
  theme_void()

Lista de tipos de línea en ggplot2

Tipos de línea personalizados en ggplot2 con cadenas hexadecimales

Tipos de línea personalizados

También puedes crear tus propios patrones con una cadena de 2, 4, 6 u 8 dígitos hexadecimales, donde cada par de dígitos indica la longitud de un trazo y la del espacio que le sigue. Por ejemplo, "44" crea trazos de 4 unidades separados por espacios de 4 unidades y "1343" alterna trazos cortos y largos.

ggplot(df, aes(x = x, y = y, group = group)) +
  geom_line(linetype = "1343")

Cambiar el tipo de línea

Si quieres que todas las líneas tengan el mismo tipo pasa el nombre o el número del tipo de línea al argumento linetype de geom_line (o de cualquier otro geom con líneas), fuera de aes. En este ejemplo utilizamos un gráfico de líneas múltiples.

ggplot(df, aes(x = x, y = y, group = group)) +
  geom_line(linetype = "dashed")

Cambiar el tipo de línea en ggplot2

Tipo de línea por grupo

Tipo de línea por grupo en ggplot2

Para usar un tipo de línea diferente para cada grupo pasa la variable categórica al argumento linetype dentro de aes. Esto es muy útil cuando el gráfico se va a imprimir en blanco y negro.

ggplot(df, aes(x = x, y = y, linetype = group)) +
  geom_line()

scale_linetype_manual

Con scale_linetype_manual puedes elegir el tipo de línea de cada grupo, pasando un vector con los nombres, los números o los patrones personalizados al argumento values.

ggplot(df, aes(x = x, y = y, linetype = group)) +
  geom_line() +
  scale_linetype_manual(values = c("solid", "dotted", "44"))

Elegir el tipo de línea de cada grupo en ggplot2 con scale_linetype_manual

Grosor de las líneas

Cambiar el grosor de las líneas en ggplot2 con linewidth

El grosor de las líneas se controla con el argumento linewidth. Ten en cuenta que desde ggplot2 3.4.0 linewidth sustituye al argumento size en las líneas, por lo que si encuentras código antiguo que usa size para cambiar el grosor de las líneas deberías cambiarlo por linewidth.

ggplot(df, aes(x = x, y = y, linetype = group)) +
  geom_line(linewidth = 1.2)

Líneas y puntos con una única leyenda

Cuando combinas líneas y puntos es habitual asignar los grupos al color, al tipo de línea y a la forma a la vez. Si todos usan la misma variable y el mismo título ggplot2 los unirá en una única leyenda. Consulta las formas en ggplot2 para elegir las formas y la guía sobre leyendas en ggplot2 para personalizar la leyenda.

ggplot(df, aes(x = x, y = y, color = group,
               linetype = group, shape = group)) +
  geom_line() +
  geom_point(size = 2.5)

Líneas y puntos con formas, tipos de línea y colores diferentes por grupo en ggplot2

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