데이터 분석/R

R ggplot에서 for문 활용해서 세로선 추가하기

세리둥절 2021. 12. 7. 21:32
반응형

✔️ 필요성

ggplot으로 x축이 날짜인 그래프를 그렸다. 그리고 내가 원하는 특정 날짜마다 포인트를 주기 위해서 세로선을 그리고 싶다. 그런데 일일이 날짜를 계산해서 geom_vline을 추가하려니 힘들다. for loop을 활용해보자.

이런 식으로..

 

 

✔️ 활용 예제

# 그림 그리기
p = data %>% mutate(time = ymd(dt)) %>%
    ggplot() +
    geom_line(aes(x=time, y=cnt, group=region)) +
    facet_wrap(~region, scales='free_x') +
    theme_bw() + theme(legend.position = 'top') +
    xlab('') + ylab('') +
    scale_y_continuous(labels = scales::comma) +
    scale_x_date(date_labels='%d', breaks=date_breaks('1 day')); p
    
# 날짜 추가하기
specific_date = c('20200101', '20200301', '20200415') #중요한 날짜들
for (i in length(specific_date)) {
	value = as.numeric(ymd(specific_date[i]))
    p <- p + geom_vline(aes_string(xintercept=value), linetype='dashed', col='black')
}
p
반응형