사용데이터 : https://2stndard.tistory.com/68
geom_boxplot()
박스 플롯은 데이터의 전반적 분포를 살펴볼 수 있는 매우 좋은 시각화 방법이다. 앞서 설명한 산점도는 X, Y축 모두 연속형 수치 데이터를 사용하지만 박스 플롯은 이산형 데이터로 분류되는 데이터의 전반적 분포를 시각화할 수 있다는 점에서 활용도가 크고 산점도(Scatter Plot)에서는 표현할 수 없었던 중간값, IQR 범위, 이상치 등의 추가적인 정보를 같이 볼 수 있다는 장점이 있다. R에서 박스 플롯 레이어를 생성하기 위해서는 geom_boxplot()
을 사용한다.
박스 플롯으로 표현되는 상자의 중심은 중앙값이다. 중앙값은 가로선으로 표현되며 그 주위를 상자가 둘러싸고 있다. 상자의 상단과 하단은 관측값들의 25%와 75%를 나타낸다. 상자의 상단과 하단 범위를 벗어나면 사분위 범위의 1.5배에 해당하는 ’수염(whisker)’으로 표현된다. 수염 밖에 존재하는 값은 점으로 표기하며 이상치로 간주된다.
박스 플롯의 구조
geom_boxplot()
에서 사용이 가능한 미적 요소는 x, y, lower(xlower), upper(xupper), middle(xmiddle), ymin(xmin), ymax(xmax), alpha, colour, fill, group, linetype, shape, size, weight 등이 있다. 이 중 lower(xlower), upper(xupper), middle(xmiddle), ymin(xmin), ymax(xmax)는 박스를 수동으로 설정하기 위해 사용하는 미적 요소이다.
## df_취업통계 데이터를 ggplot 객체로 생성하고 p_boxplot에 저장
p_boxplot <- df_취업률 |>
ggplot()
X, Y 축 데이터 매핑
ggplot2
를 사용하여 박스 플롯을 그리려면 먼저 X, Y축에 어떤 데이터를 매핑시킬지 결정해야 한다. 박스 플롯은 보통 X축에 이산형 변수, Y축에 연속형 변수를 매핑하는 것이 일반적이다.
## p_boxplot에 x축에 대계열, y축에 취업률_계로 매핑한 geom_boxplot 레이어를 생성
p_boxplot +
geom_boxplot(aes(x = 대계열, y = 취업률_계))
만약 가로형 박스플롯을 그린다면 X축에 연속형 변수, Y축에 이산형 변수를 매핑하거나 가로형 박스 플롯을 그린 후에 coord_flip()
을 사용하여 축을 바꾸어 주는 방법을 선택할 수도 있다. 박스로 표현해야 할 이산형 변수의 변량이 많다면 세로형 막대보다는 가로형 막대로 그려주는 것이 효과적이다.
## p_boxplot에 x축에 취업률, y축에 대계열로 매핑한 geom_boxplot 레이어를 생성
p_boxplot +
geom_boxplot(aes(y = 대계열, x = 취업률_계))
박스 내부 색 설정
박스 내부에 색을 넣으려면 ’fill’에 색을 매핑한다. 여기서 ’color’와 헤깔리는 경우가 있는데 박스 플롯에서 ’color’는 박스를 만드는데 사용하는 선의 색을 지정한다.
## p_boxplot에 x축에 대계열, y축에 취업률_계, fill을 대계열로 매핑, 미적 요소를 설정한 geom_boxplot레이어를 생성
p_boxplot +
geom_boxplot(aes(x = 대계열, y = 취업률_계, fill = 대계열), linetype = 2)
’fill’이 아닌 ’color’를 설정하게 되면 선의 색과 함께 이상치를 표시하는 점의 색도 같이 변경된다.
## p_boxplot에 x축에 대계열, y축에 취업률_계, color을 대계열로 매핑, 미적 요소를 설정한 geom_boxplot레이어를 생성
p_boxplot +
geom_boxplot(aes(x = 대계열, y = 취업률_계, color = 대계열), linetype = 2)
notch
2017년 iPhoneX가 처음 소개되면서 유명세를 탄 디자인 스타일이 notch 스타일이다. 이 notch 스타일은 평면이나 직선의 일부에 삼각형이나 사각형의 홈을 내는 디자인 스타일을 말한다. 박스 플롯에서 유일하게 사용되는 노치 스타일은 ’notch’를 TRUE로 설정하면 적용되고 ’notchwidth’를 사용하여 노치의 깊이를 설정해 줄 수 있다.
## p_boxplot에 x축에 대계열, y축에 취업률_계, fill을 대계열로 매핑, 미적 요소를 설정한 geom_boxplot레이어를 생성
p_boxplot +
geom_boxplot(aes(x = 대계열, y = 취업률_계, fill = 대계열), linetype = 2, notch = TRUE, notchwidth = 0.2, outlier.shape = 3)
## p_boxplot에 x축에 대계열, y축에 취업률_계, fill을 대계열로 매핑, 미적 요소를 설정한 geom_boxplot레이어를 생성
p_boxplot +
geom_boxplot(aes(x = 대계열, y = 취업률_계, fill = 대계열), linetype = 2, notch = TRUE, notchwidth = 0.2, outlier.shape = 3, varwidth = TRUE)
'ggplot2' 카테고리의 다른 글
박스 플롯(Boxplot)에 평균값 표현하기 in R (0) | 2022.06.12 |
---|---|
밀도 분포 플롯(geom_density) in R (0) | 2022.06.12 |
와플차트(Waffle) in R (0) | 2022.06.03 |
산키(sankey) 다이어그램 in R (5) | 2022.05.15 |
ggplot2 축 눈금 간격과 눈금 레벨 설정 in R (0) | 2022.05.05 |
댓글