[facet_wrap, facet_grid 함수]
facet_wrap() 및 facet_grid() 함수는 ggplot2로 그린 그래프를 데이터를 기준에 따라 여러 서브플롯으로 나누어 그리는 데 사용된다. 특정 변수에 따라 데이터를 서브플롯으로 분할하여 각 서브플롯에 대해 동일한 그래프를 생성한다.
facet_wrap() 및 facet_grid() 함수는 여러 데이터를 동시에 비교할 수 있도록 시각화할 때 유용하다.
[facet_wrap 예제]
facet_wrap()은 하나의 변수를 기준으로 여러 서브플롯을 생성한다.
facet_wrap(~category, ncol = 2) : species변수를 기준으로 서브플롯을 생성
library(palmerpenguins)
library(tidyverse)
data("penguins") #Dataset 불러오기
#facet_wrap을 사용하여 species에 따라 서브플롯 생성
ggplot(data = penguins, aes(y = body_mass_g, fill = species)) +
geom_boxplot() +
scale_fill_manual(values = group_colors) +
facet_wrap(~species, ncol = 2) + # ncol은 열의 수를 의미
labs(title = "Body_mass", x = "Species", y = "Body_mass(g)")
facet_wrap(~category, ncol = 3)
ggplot(data = penguins, aes(y = body_mass_g, fill = species)) +
geom_boxplot() +
scale_fill_manual(values = group_colors) +
facet_wrap(~species, ncol = 3) + # ncol은 열의 수를 의미
labs(title = "Body_mass", x = "Species", y = "Body_mass(g)")
[scales = "free_y" 옵션]
scales = "free_y" : : 서브플롯의 y축 스케일을 각각 독립적으로 조절한다.
ggplot(data = penguins, aes(y = body_mass_g, fill = species)) +
geom_boxplot() +
scale_fill_manual(values = group_colors) +
facet_wrap(~species, ncol = 3, scales = "free_y") + #scales = "free_y"
labs(title = "Body_mass", x = "Species", y = "Body_mass(g)")
[labeller 옵션]
서브플롯의 레이블을 사용자가 정의한 레이블로 지정한다.
labeller = labeller(species = c(Adelie = "Group A", Chinstrap = "Group B", Gentoo = "Group C"))
ggplot(data = penguins, aes(y = body_mass_g, fill = species)) +
geom_boxplot() +
scale_fill_manual(values = group_colors) +
facet_wrap(~species, ncol = 2,
labeller = labeller(species = c(Adelie = "Group A", Chinstrap = "Group B", Gentoo = "Group C"))) +
labs(title = "Body_mass", x = "Species", y = "Body_mass(g)")
[facet_grid 예제]
facet_grid()는 두 개의 변수를 기준으로 여러 서브플롯을 생성한다.
# facet_grid를 사용하여 island와 species에 따라 서브플롯 생성
ggplot(data = penguins, aes(y = body_mass_g, fill = species)) +
geom_boxplot() +
scale_fill_manual(values = group_colors) +
facet_wrap(island ~species) +
labs(title = "Body_mass", x = "Species", y = "Body_mass(g)")
facet_grid(island ~species)는 island와 species 두 변수를 기준으로 서브플롯을 생성한다.
이 경우 island가 행, species 가 열에 해당한다.
table(penguins$island, penguins$species) |
> table(penguins$island, penguins$species) Adelie Chinstrap Gentoo Biscoe 44 0 124 Dream 56 68 0 Torgersen 52 0 0 |
[scales = "free" 옵션]
scales = "free": 서브플롯의 스케일을 각각 독립적으로 조절한다.
ggplot(data = penguins, aes(y = body_mass_g, fill = species)) +
geom_boxplot() +
scale_fill_manual(values = group_colors) +
facet_wrap(island ~species, scales = "free") +
labs(title = "Body_mass", x = "Species", y = "Body_mass(g)")
[labeller 옵션]
label_both : facet의 변수로 사용되는 변수명과 변량값을 붙여서 사용
ggplot(data = penguins, aes(y = body_mass_g, fill = species)) +
geom_boxplot() +
scale_fill_manual(values = group_colors) +
facet_wrap(island ~species, scales = "free", labeller = label_both) +
labs(title = "Body_mass", x = "Species", y = "Body_mass(g)")
[switch = "both" 옵션]
switch = "both": 행과 열을 바꿀 수 있도록 허용한다.
ggplot(data = penguins, aes(y = body_mass_g, fill = species)) +
geom_boxplot() +
scale_fill_manual(values = group_colors) +
facet_wrap(island ~species, switch = "both") +
labs(title = "Body_mass", x = "Species", y = "Body_mass(g)")
'데이터 분석 (with Rstudio)' 카테고리의 다른 글
[Rstudio] 리플렛(leaflet) 지도 종류 설정 (한국 관광 100선 위치) (1) | 2023.12.23 |
---|---|
[Rstudio] 리플렛 지도 위치 표시 (Marking with leaflet package) (0) | 2023.12.19 |
건물과 주소 위도 경도 정보 알아내기 2 (with Rstudio API) (0) | 2023.12.06 |
건물과 주소 위도 경도 정보 알아내기 1 (with 구글 스프레드시트) (2) | 2023.12.05 |
[Rstudio] 회귀분석 (Regression Analysis) (1) | 2023.11.14 |