ggplot2 로 그래프를 그리다가 추가적인 보조선을 그리고 싶을 때가 있다.
예를 들면, 아래와 같은 꺾은선그래프에서는 y = 0
인 직선을 그려주면, 음의 방향으로 그래프를 향하는 부분을 쉽게 강조할 수 있다. 이와 같이 수직선, 수평선 혹은 일차방정식에 해당하는 기울기가 있는 직선을 보조선으로 사용하는 방법을 정리해본다.
데이터 만들기
여기를 클릭하여 데이터를 다운 받는다. 그냥 날짜별로 값이 존재하는 단순한 테이블이다. 여기에 x 라는 필드를 추가할 건데, row 일련번호를 넣어줬다.
tb1 = read_csv("./2022/20221209/data.csv") %>%
mutate(x = row_number())
# A tibble: 15 × 3
date value x
<date> <dbl> <int>
1 2021-09-01 2.5 1
2 2021-10-01 2.2 2
3 2021-11-01 1.7 3
4 2021-12-01 1.8 4
5 2022-01-01 1.4 5
6 2022-02-01 1.4 6
7 2022-03-01 1.2 7
8 2022-04-01 1.1 8
9 2022-05-01 1.1 9
10 2022-06-01 0.9 10
11 2022-07-01 1.1 11
12 2022-08-01 0.9 12
13 2022-09-01 0.6 13
14 2022-10-01 0.2 14
15 2022-11-01 -1 15
기본 그래프 그리기
아까 만든 데이터를 가지고, 간단하게 선그래프1를 그린다.
ggplot(tb1, aes(x, value)) +
geom_line(colour = "yellowgreen", size = 2) +
theme_bw()
geom_hline
geom_hline
을 사용해서 수평의 보조선을 그릴 수 있다. 수평선은 기울기가 0인, y축의 하나의 값만 있으면 되는 직선이기 때문에, yintercept
값으로 수평선의 위치가 정해진다. 여기서 색상은 tomato
2를 사용했는데, 본인이 원하는 색상으로 셋팅하도록 한다.
ggplot(tb1, aes(x, value)) +
geom_line(colour = "yellowgreen", size = 2) +
geom_hline(yintercept = 0, size = 1, colour = "tomato") +
theme_bw()
geom_vline
수직형 보조선을 그리기 위해서는 geom_vline
함수를 사용한다. 수직선이기 때문에 x축의 위치를 나타내는 xintercept
의 값만 셋팅하면 된다. linetype
3 를 셋팅하면 직선말고도 다양한 선으로 표현할 수 있다.
ggplot(tb1, aes(x, value)) +
geom_line(colour = "yellowgreen", size = 2) +
geom_vline(xintercept = 12, size = 0.8,
colour = "tomato", linetype = "dashed") +
theme_bw()
geom_abline
geom_abline
함수는 기울기를 가지는 직선형 보조선을 그릴때 사용한다. y = ax + b
라는 일차방정식의 직선형태를 나타내며, 기울기는 slope
, y절편값은 intercept
에 셋팅하면 된다.
ggplot(tb1, aes(x, value)) +
geom_line(colour = "yellowgreen", size = 2) +
geom_abline(slope = -0.2, intercept = 2.5, size = 1,
colour = "tomato", linetype = "dotdash") +
theme_bw()