본문 바로가기

데이터 다루기/데이터 시각화

[R을 활용한 시각화] 1. ggplot2 (Barplot) (2)

728x90
반응형

이번 포스팅에서는 ggplot2 패키지를 활용해서 다양한 그룹이 있는 Barplot을 그려보도록 하겠습니다.

1. 실습 데이터 정의

### Data definition (multiple groups)
df2 <- data.frame(supp=rep(c("VC", "OJ"), each=3),
                  dose=rep(c("D0.5", "D1", "D2"),2),
                  len=c(6.8, 15, 33, 4.2, 10, 29.5))
head(df2)

<< Result >>
  supp dose  len
1   VC   D1  6.8
2   VC   D2 15.0
3   VC   D3 33.0
4   OJ   D1  4.2
5   OJ   D2 10.0
6   OJ   D3 29.5

 

이번 데이터는 두 개의 그룹을 가지고 있습니다.

이런 경우 Bargraph를 어떻게 그릴 수 있을까요??

2. 패키지 불러오기

library(ggplot2)

library 함수를 통해 먼저 ggplot2 패키지를 불러왔습니다.

3. Bargraph 꾸미기

# Stacked barplot with multiple groups
ggplot(data=df2, aes(x=dose, y=len, fill=supp)) +
  geom_bar(stat="identity", width = 0.5)

# Use position=position_dodge()
ggplot(data=df2, aes(x=dose, y=len, fill=supp)) +
  geom_bar(stat="identity", position=position_dodge())

두 개의 group 변수가 있는 경우, 2가지 방식으로 그릴 수 있습니다.

아무런 함수를 입력해주지 않으면 첫번째 그래프처럼 하나로 합쳐져서 그려집니다.

position = position_dodge() 인자를 추가해주시면, 분리되서 그려집니다.

# Change the colors manually
p <- ggplot(data=df2, aes(x=dose, y=len, fill=supp)) +
  geom_bar(stat="identity", color="black", position=position_dodge())+
  theme_minimal()
# Use custom colors
p + scale_fill_manual(values=c('#999999','#E69F00'))

마찬가지로 색깔을 마음대로 지정할 수 있답니다.

(1) 값 라벨링

### Labeling
ggplot(data=df2, aes(x=dose, y=len, fill=supp)) +
  geom_bar(stat="identity", position=position_dodge())+
  geom_text(aes(label=len), vjust=1.6, color="red",
            position = position_dodge(0.9), size=8)+
  scale_fill_brewer(palette="Paired")+
  theme_minimal()

geom_text로 dodge 된 그래프에 labeling을 진행할 수 있습니다.

반응형