ggplot으로 그룹 별로 그래프 그리기 예제 에서 보이는 것 처럼, geom_line()을 쓰면 x값들을 자동으로 정렬해서 line을 그려줍니다.
> df
aa bb cc
1 1 12 first
2 2 25 first
3 3 31 first
4 4 43 first
5 1 15 second
6 2 22 second
7 3 38 second
8 4 41 second
> ggplot(df, aes(x=aa, y=bb)) + geom_line()
여기서, 정렬 되지 않은 원래의 data순서 그대로의 line을 보고 싶을 때가 있죠.
그럴 때는 geom_line() 대신 geom_path()를 사용합니다.
> ggplot(df, aes(x=aa, y=bb)) + geom_path()
두 개의 plot이 같은 data에서 나온 그래프임을 보여주기 위해서 point도 같이 그려보았습니다.
> ggplot(df, aes(x=aa, y=bb)) + geom_line() + geom_point()
> ggplot(df, aes(x=aa, y=bb)) + geom_path() + geom_point()
점들의 위치는 양쪽이 같네요. 하지만, 어떻게 연결해 주느냐에 따라 전혀 다른 plot으로 보입니다.
다른 예를 하나 더 볼까요?
> theta <- seq(0, 2*pi, 1) > df <- data.frame(x = cos(theta), y = sin(theta)) > ggplot(df, aes(x=x, y=y)) + geom_line() > ggplot(df, aes(x=x, y=y)) + geom_path()
완전히 다르게 보이죠? geom_line()으로는 보이지않던 패턴이 geom_path()에서는 너무나 명확히 드러납니다.
어떻게 그래프를 그리는 지가 이렇게 중요하답니다.