본 게시글은 ggplot 에서 수직선, 수평선을 그리는 예시이다.
slope와 intercept를 설정하면 직선을 그어주는 geom_abline()도 있는데, 잘 쓰진 않는 것 같아서 생략한다.
수직선 geom_vline() / 수평선 geom_hline()
수직선 (Vertical; vline), 수평선 (Horizon, hline) 함수 모두 아래와 같은 사용 가능한 옵션이 존재한다.
- intercept: vline의 경우 xintercept를, hline의 경우 yintercept를 설정한다.
- linetype: 선의 형태를 지정할 수 있다.
- color: 선의 색깔을 지정할 수 있다.
- size: 선의 굵기를 지정할 수 있다.
R 내장 데이터인 mtcars 에 적용하면 다음과 같다.
scatter_plot <- ggplot(data=mtcars, aes(x=wt, y=mpg)) + geom_point()
theme_set(theme_bw())
scatter_plot + geom_vline(xintercept = 5) # 왼쪽
scatter_plot + geom_hline(yintercept = 30) # 오른쪽
Time Series 데이터에 여러 시점에 대한 수직선 넣기
Time Sries 그래프에서 정책이 수행된 특정 시점을 vline()을 통해 표시하고자 한다.
여러 개의 선을 한 번에 그리고자 할 때, 아래 처럼 interception을 vector로 사용할 수도 있다.
그리고 x축이 시간에 대한 변수라면, 그 값을 맞추어서 넣어줘야 한다.
(실제로 1일 마다 수행되진 않았으나,
intervention <- as.Date(c("2020-03-01", "2020-05-01", "2020-06-01", "2020-11-01",
"2021-02-01", "2021-05-01", "2021-09-01", "2021-11-01",
"2022-03-01", "2023-03-01", "2023-06-01"))
final_plot +
geom_vline(xintercept=intervention, linetype="dashed", color="grey60") +
geom_hline(yintercept=0)
final_plot 은 아래 게시글을 참고하면 작성 가능하다.
반응형
'R Programming > Data Visualization' 카테고리의 다른 글
[R] 그래프 제목에 수식과 문자 함께 넣기: expression, paste (2) | 2023.11.09 |
---|---|
[R] ggplot2 테마 적용으로 쉽게 그래프 꾸미기 (1) | 2023.11.02 |
[R] 이중 축 그래프 그리기: ggplot2, sec_axis 생성 (0) | 2023.10.08 |
[R] Useful Links for ggplot2 (0) | 2023.09.23 |
[R] for 문으로 그래프 생성: ggplot2, for, assign, paste (0) | 2022.08.07 |