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.
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()


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")
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")


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"))


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)
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)

Aprende estadística desde lo básico hasta técnicas avanzadas, explicado con claridad
Ir al sitio
También te puede interesar