ggplot에서 연결이 끊긴 라인 플로팅 [중복]

Jan 14 2021

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

코드 사용

ggplot(data=tempdf, aes(x = x)) +
    geom_line(aes(y = y), color = "blue") + 
    geom_line(aes(y = z), color = "red", size = 1)

이 출력을 얻습니다.

그러나 나는 다음과 같은 것을 만들고 싶습니다 (빨간색 선이 단계에서 연결되지 않음에 유의하십시오)

나는 사용해 geom_segment보았지만 올바른 방법을 찾지 못했습니다.

ggplot(data=tempdf, aes(x = x)) +
    geom_line(aes(y = y), color = "blue") + 
    geom_segment(x = x, y = z, xend = x+25, yend = z)

이것을 준다

답변

2 GregorThomas Jan 14 2021 at 06:02

group미학을 사용하여 연결된 행을 정의 하십시오 .

ggplot(data=tempdf, aes(x = x)) +
    geom_line(aes(y = y), color = "blue") + 
    geom_line(aes(y = z, group = z), color = "red", size = 1)

(이는 group = z동일한 z값 을 갖고 z값이 고유 한 경우 선을 연결하기를 원하기 때문에 샘플 데이터에 대해 쉽게 작동 합니다.보다 강력한 방법은이 목적을 위해 열을 추가하는 것입니다.)