Trazar línea desconectada en ggplot [duplicar]
Jan 14 2021
Quiero crear un gráfico con líneas desconectadas usando ggplot
# Sample data
x <- seq(1:100)
y <- c(rnorm(25, mean = 1, sd = 1), rnorm(25, mean = 2, sd = 1), rnorm(25, mean = 3, sd = 1), rnorm(25, mean = 4, sd = 1))
z <- rep(1:4, each = 25)
tempdf <- data.frame(cbind(x,y,z))
Usando código
ggplot(data=tempdf, aes(x = x)) +
geom_line(aes(y = y), color = "blue") +
geom_line(aes(y = z), color = "red", size = 1)
Obtengo esta salida

Sin embargo, quiero crear algo como (observe que las líneas rojas no están conectadas en los pasos)

Intenté usar geom_segment
pero no pude encontrar la manera correcta
ggplot(data=tempdf, aes(x = x)) +
geom_line(aes(y = y), color = "blue") +
geom_segment(x = x, y = z, xend = x+25, yend = z)
da esto

Respuestas
2 GregorThomas Jan 14 2021 at 06:02
Use una group
estética para definir qué filas están conectadas:
ggplot(data=tempdf, aes(x = x)) +
geom_line(aes(y = y), color = "blue") +
geom_line(aes(y = z, group = z), color = "red", size = 1)
(Esto funciona fácilmente para sus datos de muestra group = z
porque desea que las líneas estén conectadas si tienen el mismo z
valor Y los z
valores son únicos. Una forma más sólida agregaría una columna para este propósito).
