본문 바로가기

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

[R을 활용한 시각화] 5. ggplot2 (Area plot)

728x90
반응형

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

1. 실습 데이터 정의

# Convert cyl column from a numeric to a factor variable
set.seed(1234)
df <- data.frame(
  sex=factor(rep(c("F", "M"), each=200)),
  weight=round(c(rnorm(200, mean=55, sd=5),
                 rnorm(200, mean=65, sd=5)))
  )
head(df)

<< Result >>
  sex weight
1   F     49
2   F     56
3   F     60
4   F     43
5   F     57
6   F     58

이번에 사용할 데이터는 성별 별로, 각각 남성은 평균이 55, 표준편차가 5인 정규분포에서, 그리고 여성은 평균이 65, 표준편자차 5인 정규분포에서 200개씩 샘플링해서 뽑았습니다.

2. 패키지 불러오기

library(ggplot2)

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

 

3. Area plot 꾸미기

p <- ggplot(df, aes(x=weight))
# Basic area plot
p + geom_area(stat = "bin")

geom_area 함수를 통해서, 기본적인 Area plot을 그릴 수 있습니다.

이 때, stat = "bin"은 빈도 수로 그리겠다는 의미입니다.

# y axis as density value
p + geom_area(aes(y = ..density..), stat = "bin")

이 때, y값을 density (밀도)로 바꿀 수 있습니다.

(1) Area plot color

p + geom_area(stat = "bin", fill = "lightblue")

fill 인자에 색깔을 주면, Area plot의 색깔을 변경할 수 있습니다.

(2) Mean line

p + geom_area(stat = "bin", fill = "lightblue")+
  geom_vline(aes(xintercept=mean(weight)),
             color="blue", linetype="dashed", size=1)

geom_vline 함수를 통해서, Area plot에 평균지점에 수직선을 추가할 수 있습니다.

다양한 설정을 통해, 선의 모양, 굵기, 색깔 또한 조절할 수 있습니다.

(3) Line color

# Change line type
p + geom_area(stat = "bin", color= "red",
              fill="lightgrey", linetype="dashed")

color는 fill과 다르게 선의 색깔을 조절합니다. 그리고 linetype함수를 사용하면, 선의 타입을 조절 할 수 있습니다.

(4) Area plots with groups

# Change area plot fill colors by groups
# Use semi-transparent fill
p<-ggplot(df, aes(x=weight, fill=sex)) +
  geom_area(stat ="bin", alpha=0.6) +
  theme_classic()
p

fill인자에 group을 넣어주시면, 위와 같은 Area plot이 그려집니다.

이 때, alpha는 투명도를 나타냅니다.

# Load the data
data("diamonds")
p <- ggplot(diamonds, aes(x = price, fill = cut))

# Area plot
p + geom_area(stat = "bin") +
  scale_fill_brewer(palette="Dark2") 

반응형