R ggplot2 집단간 비교를 위한 면 분할(facet, Trellis) : facet_grid(), facet_wrap()
R 분석과 프로그래밍/R 그래프_시각화 2015. 9. 3. 00:35그룹(집단, 요인) 간의 데이터 분포 형태, 변화 추이 등을 비교 분석하기에 유용한 방법으로 비교하려는 축을 기준으로 면을 분할하여 그래프를 그룹 간 비교하는 방법이 있습니다.
Lattice 패키지에서는 Trellis 를 사용하는데요, ggplot2 패키지에서는 facet_grid() 함수와 facet_wrap() 함수를 사용하여 면 분할을 구현할 수 있습니다.
Base Graphics 패키지에서는 par() 함수를 사용해서 면 분할을 지정해줄 수 있습니다만, x축과 y축의 scale이 들쭉날쭉해서 직접적으로 서로 비교하기가 곤란하거나, y축의 min, max 값이 그룹 간 숫자를 모두 감안해서 자동 설정되는 것이 아니다보니 분석가가 미리 y축 값의 범위를 계산해보고, 혹은 그려보고 나서 y축 값을 세팅해줘야 하므로 lattice나 ggplot2 대비 불편합니다. 따라서 집단간 비교를 위한 면 분할이 필요한 경우 ggplot2나 lattice 패키지를 권합니다.
MASS 패키지 내 무게(Weight), 고속도로연비(MPG.highway), 차종(Type, 범주형), 생산국가(Origin, 범주형) 의 4개 변수를 사용해서, x축에 무게(Weight), y축에 고속도로연비(MPG.highway), 그리고 면 분할의 기준으로 범주형 변수인 차종(Type)과 생산국가(Origin) 변수를 사용하겠습니다.
facet_grid()를 먼저 예제를 보이고, 그 후에 facet_wrap()의 예제를 들겠습니다. 두 함수가 비슷하면서도 조금 다릅니다. 분석가가 필요로 하는 아웃풋 이미지에 맞게 골라서 사용하면 되겠습니다.
(1) facet_grid()
> # facet_grid() > ggplot(Cars93, aes(x=Weight, y=MPG.highway)) + + geom_point(shape=21, colour="black") + + facet_grid(Type ~ .)
|
(2) facet_wrap()
facet_wrap()는 ncol 또는 nrow 로 행 또는 열의 개수를 분석가가 지정할 수 있어서 좋은 점이 있습니다.
> # facet_wrap() > ggplot(Cars93, aes(x=Weight, y=MPG.highway)) + + geom_point(shape=21, colour="black") + + facet_wrap( ~ Type, ncol=3)
> ggplot(Cars93, aes(x=Weight, y=MPG.highway)) + + geom_point(shape=21, colour="black") + + facet_wrap(Origin ~ Type, ncol=3)
> ggplot(Cars93, aes(x=Weight, y=MPG.highway)) + + geom_point(shape=21, colour="black") + + facet_wrap(Origin ~ Type, ncol=2)
|
많은 도움 되었기를 바랍니다.
이번 포스팅이 도움이 되었다면 아래의 '공감 ~♡' 단추를 꾸욱 눌러주세요.^^
'R 분석과 프로그래밍 > R 그래프_시각화' 카테고리의 다른 글
R ggplot2 그래프 색깔 설정 (colour setting) (0) | 2015.09.05 |
---|---|
R ggplot2 x축, y축 설정 : coord_fixed(), scale_x_continuous(), scale_y_continuous() (4) | 2015.09.04 |
R ggplot2 버블 그래프 (Bubble Chart) : geom_point(), scale_size_area() (6) | 2015.09.02 |
R Graphics 패키지 pairs() 함수를 사용한 산점도 행렬 그리기 (0) | 2015.09.01 |
R corrplot 상관계수 행렬 Plot (correlation matrix plot) (7) | 2015.09.01 |