Wykreśl odłączoną linię w ggplot [duplikat]
Jan 14 2021
Chcę utworzyć wykres z rozłączonymi liniami za pomocą 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))
Korzystanie z kodu
ggplot(data=tempdf, aes(x = x)) +
geom_line(aes(y = y), color = "blue") +
geom_line(aes(y = z), color = "red", size = 1)
Otrzymuję ten wynik
![](https://post.nghiatu.com/assets/images/s/xQ3z0.png)
Jednak chcę stworzyć coś podobnego (zauważ, że czerwone linie nie są połączone na stopniach)
![](https://post.nghiatu.com/assets/images/s/4qsQa.png)
Próbowałem użyć, geom_segment
ale nie mogłem znaleźć właściwego sposobu
ggplot(data=tempdf, aes(x = x)) +
geom_line(aes(y = y), color = "blue") +
geom_segment(x = x, y = z, xend = x+25, yend = z)
daje to
![](https://post.nghiatu.com/assets/images/s/5Elhi.png)
Odpowiedzi
2 GregorThomas Jan 14 2021 at 06:02
Użyj group
estetyki, aby zdefiniować, które rzędy są połączone:
ggplot(data=tempdf, aes(x = x)) +
geom_line(aes(y = y), color = "blue") +
geom_line(aes(y = z, group = z), color = "red", size = 1)
(Działa to łatwo w przypadku danych przykładowych, group = z
ponieważ chcesz, aby linie były połączone, jeśli mają tę samą z
wartość ORAZ z
wartości są unikalne. Bardziej niezawodny sposób mógłby dodać kolumnę w tym celu).
![](https://post.nghiatu.com/assets/images/s/7Ewrk.png)