Traccia la linea disconnessa in ggplot [duplicato]
Voglio creare un grafico con linee scollegate 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))
Utilizzando il codice
ggplot(data=tempdf, aes(x = x)) +
geom_line(aes(y = y), color = "blue") +
geom_line(aes(y = z), color = "red", size = 1)
Ottengo questo output
Tuttavia voglio creare qualcosa di simile (notare che le linee rosse non sono collegate nei passaggi)
Ho provato a usare geom_segment
ma non sono riuscito a capire il modo giusto
ggplot(data=tempdf, aes(x = x)) +
geom_line(aes(y = y), color = "blue") +
geom_segment(x = x, y = z, xend = x+25, yend = z)
dà questo
Risposte
2 GregorThomas
Usa group
un'estetica per definire quali righe sono collegate:
ggplot(data=tempdf, aes(x = x)) +
geom_line(aes(y = y), color = "blue") +
geom_line(aes(y = z, group = z), color = "red", size = 1)
(Questo funziona facilmente per i tuoi dati di esempio con group = z
perché vuoi che le linee siano collegate se hanno lo stesso z
valore E i z
valori sono univoci. Un modo più robusto aggiungerebbe una colonna per questo scopo.)