원래의 그래프를 또 다른 변수의 측면에서 세분화하여 살펴보는 방법으로는 도형의 다른 속성에 해당 변수를 대응시키는 것 말고도 해당 변수값에 따라 데이터를 나누어 각각에 대한 그래프를 그려볼 수도 있다. ggplot2에서는 이러한 방식으로 그래프를 그리는 것을 측면(facets)으로 나누어 그래프를 그린다고 한다.
facet_wrap()로 일차원 측면 그래프 그리기
다음은 facet_wrap() 함수의 사용법을 보여준다. ~ 은 R에서 수식을 표현할 때 사용되는데, facet_wrap() 함수는 수식을 인수로 입력받는다. facet_wrap() 함수는 ~ 우변에 기술된 변수를 측면(facets)으로 하여 데이터를 나누어 그래프를 그린다. 이 때 측면(facets)으로 사용되는 변수는 범주형 데이터이어야 한다. facet_wrap()은 부분 그래프가 많아지면 줄바꿈하여 그래프를 표시한다. ncol이나 ncol을 설정하면 그래프의 행과 열의 수를 지정하여 줄바꿈 처리를 제어할 수 있다.
> ggplot() + geom_point(mapping=aes(x=displ, y=hwy), data=mpg) +
+ facet_wrap(~class, nrow = 2)
두 개 이상의 변수를 조합하여 측면을 만드려면 다음처럼 수식의 우변에 두 개의 변수를 +로 연결하여 기술하면 된다.
> ggplot() + geom_point(mapping=aes(x=displ, y=hwy), data=mpg) +
+ facet_wrap(~drv + year, nrow = 2)
facet_grid()로 이차원 측면 그래프 그리기
원래 그래프를 두 변수의 측면에서 나누어 그리기를 하려면 facet_grid()를 사용하는 것이 좋다. facet_grid()도 수식은 인수로 입력 받는데, 수식의 좌변과 우변에 데이터의 변수를 지정할 수 있다. 그러면 수식의 좌변에 기술된 변수를 그래프의 행으로, 우변에 기술된 변수를 그래프의 열로 하여 측면 그래프를 그린다.
> ggplot() + geom_point(mapping=aes(x=displ, y=hwy), data=mpg) +
+ facet_grid(drv~cyl)
facet_wrap() 함수와 마찬가지로 수식의 좌변과 우변에 +로 하나 이상의 변수를 지정할 수 있다.
> ggplot() + geom_point(mapping=aes(x=displ, y=hwy), data=mpg) +
+ facet_grid(drv+year~cyl)
'R > ggplot2(시각화)' 카테고리의 다른 글
[R] ggplot2 (5) 범주형 변수의 통계 요약 (0) | 2022.11.30 |
---|---|
[R] ggplot2 (4) 그래프 계층(layers)과 도형(geoms) (0) | 2022.11.30 |
[R] ggplot2 (2) Group 속성 (0) | 2022.11.30 |
[R] ggplot2 (1) 그래프 그리기 (0) | 2022.11.30 |
[R] 고급시각화 실습 (2) (0) | 2022.11.24 |