이번 포스팅에서는 ggplot2 패키지를 활용해서 다양한 Box plot을 그려보도록 하겠습니다.
1. 실습 데이터 정의
# Convert the variable dose from a numeric to a factor variable
ToothGrowth$dose <- as.factor(ToothGrowth$dose)
head(ToothGrowth)
<< Result >>
len supp dose
1 4.2 VC 0.5
2 11.5 VC 0.5
3 7.3 VC 0.5
4 5.8 VC 0.5
5 6.4 VC 0.5
6 10.0 VC 0.5
이번에 사용할 데이터는 R에 내장되어 있는 ToothGrowth 데이터입니다.
분석을 위해서 cyl 변수를 factor 형으로 바꾸겠습니다. (0.5, 1, 2)
2. 패키지 불러오기
library(ggplot2)
library 함수를 통해 먼저 ggplot2 패키지를 불러왔습니다.
3. Box plot 꾸미기
# Basic box plot
p <- ggplot(ToothGrowth, aes(x=dose, y=len)) +
geom_boxplot()
p
가장 기본적인 Box plot입니다. geom_boxplot 함수를 통해 그릴 수 있습니다.
(1) Rotation
# Rotate the box plot
p + coord_flip()
coord_flip 함수를 통해 Bar graph와 마찬가지로 회전시킬 수 있습니다.
(2) Notched Box plot
# Notched box plot
ggplot(ToothGrowth, aes(x=dose, y=len)) +
geom_boxplot(notch=TRUE)
notch = True 인자를 통해서, box plot의 모양을 바꿀 수 있습니다.
(3) Outlier shape
# Change outlier, color, shape and size
ggplot(ToothGrowth, aes(x=dose, y=len)) +
geom_boxplot(outlier.colour="red", outlier.shape=8,
outlier.size=4)
outlier.() 함수를 통해서, 이상치의 형태, 크기, 색깔을 조절할 수 있습니다.
(4) Box plot with dots
# Box plot with jittered points
# 0.2 : degree of jitter in x direction
p + geom_jitter(shape=16, position=position_jitter(0.2))
geom.jitter 함수를 통해, 미리 그려놓은 boxplot 그래프에 dot들을 찍을 수 있습니다.
이 때, position_jitter는 dot의 크기를 나타냅니다.
(5) Box plot with colors
# Change box plot line colors by groups
p<-ggplot(ToothGrowth, aes(x=dose, y=len, color=dose)) +
geom_boxplot()
p + geom_jitter(shape=16, position=position_jitter(0.2))
color 인자에 group 변수를 넣어주시면, 위와 같이 box plot을 그릴 수도 있습니다.
# Change box plot colors by groups
p<-ggplot(ToothGrowth, aes(x=dose, y=len, fill=dose)) +
geom_boxplot()
p + geom_jitter(shape=16, position=position_jitter(0.2))
fill 인자에 group 변수를 넣어주시면, 위와 같이 box plot을 그릴 수도 있습니다.
(6) Box plot from multiple groups
# Change box plot colors by groups
ggplot(ToothGrowth, aes(x=dose, y=len, fill=supp)) +
geom_boxplot()
fill 인자에 사용되지 않은 다른 그룹 변수를 넣어주시면, 위와 같이 box plot을 그릴 수도 있습니다.
# Change the position
p<-ggplot(ToothGrowth, aes(x=dose, y=len, fill=supp)) +
geom_boxplot(position=position_dodge(1))
p
position_dodge 인자를 통해 boxplot간의 거리를 조절할 수 있습니다.
'데이터 다루기 > 데이터 시각화' 카테고리의 다른 글
[R을 활용한 시각화] 5. ggplot2 (Area plot) (0) | 2020.12.04 |
---|---|
[R을 활용한 시각화] 5. ggplot2 (Area plot) (0) | 2020.12.04 |
[R을 활용한 시각화] 3. ggplot2 (Scatter plot) (0) | 2020.11.30 |
[R을 활용한 시각화] 2. ggplot2 (Lineplot) (0) | 2020.11.25 |
[R을 활용한 시각화] 1. ggplot2 (Barplot) (2) (0) | 2020.11.25 |