사용데이터 : https://2stndard.tistory.com/68
geom_vline(), geom_hline()
geom_vline()
과 geom_hline()
은 수직선과 수평선으로 표현되는 레이어를 생성한다. geom_segment()
과 유사하지만 xintercept
나 yintercept
의 하나의 매개변수만으로 수직선, 수평선을 생성할 수 있는 특징이 있으며, 주로 기준선을 설정할 때 사용한다.
geom_vline()
과 geom_hline()
에서 사용하는 미적 요소는 x, y, xend, yend, alpha, color, group, fill, linetype, size 등 이다.
geom_vline(mapping = NULL, data = NULL, …, xintercept, na.rm = FALSE, show.legend = NA)
geom_hline(mapping = NULL, data = NULL, …, yintercept, na.rm = FALSE, show.legend = NA) - mapping : aes()를 사용하여 매핑할 미적 요소, 생략되면 ggplot()에 정의된 미적매핑 사용 - data : 시각화를 위해 사용될 데이터, 생략되면 ggplot()에 정의된 데이터 사용 - … : 미적 요소의 설정 - xintercept : 수직선을 그릴때 사용하는 X 절편값 - yintercept : 수평선을 그릴때 사용하는 Y 절편값 - na.rm : NA 값을 생략할 것인지를 설정하는 논리값
geom_vline()
과 geom_hline()
의 사용법을 살펴보기 위해 다음과 같은 산점도를 그려보자.
df_취업률_2000 |>
ggplot() +
geom_point(aes(x = 졸업자수, y = 취업자수))
이제 이 산점도에 X, Y축 값들의 평균에 가로선과 세로선을 표새해보도록 하겠다.
먼저 X축과 Y축 값들에 대한 평균값을 다음과 같이 구한다 .
x_mean <- mean(df_취업률_2000$졸업자수)
y_mean <- mean(df_취업률_2000$취업자수)
df_취업률_2000 |>
ggplot() +
geom_point(aes(x = 졸업자수, y = 취업자수)) +
geom_vline(xintercept = x_mean, color = 'red', linetype = 2) +
geom_hline(yintercept = y_mean, color = 'blue', linetype = 3)
geom_abline()
geom_abline()
은 대각선을 그릴때 사용하는 레이어이다. geom_line()
도 대각선을 그릴수 있지만 geom_line()
은 두 점을 이어주는 선을 그리는 반면 geom_abline()
은 일차 방정식 형태의 기울기와 y절편을 사용하여 대각선을 그려준다. 중학교때 배웠다시피 1차 방정식을 통해 직선을 그리기 위해서는 ‘y = ax + b’ 공식에 대입하는데 여기서 a는 기울기를 뜻하고 b는 y절편을 뜻한다. 그래서 geom_abline()
으로 이름이 붙여졌다. 그렇기 때문에 당연히 기울기가 0이면 수평선이 그려지고 기울기가 무한대 이면 수직선이 그려진다. geom_abline()
에서 기율기는 slope
로 y절편은 intercept
로 설정한다.
geom_abline(mapping = NULL, data = NULL, …, slope, intercept, na.rm = FALSE, show.legend = NA)
- mapping : aes()를 사용하여 매핑할 미적 요소, 생략되면 ggplot()에 정의된 미적매핑 사용
- data : 시각화를 위해 사용될 데이터, 생략되면 ggplot()에 정의된 데이터 사용
- slope : 선을 그릴 기울기
- intercept : 선을 그릴 Y 절편
- na.rm : NA 값을 생략할 것인지를 설정하는 논리값
- show.legend : 범례를 사용할 것인지를 설정하는 논리값
geom_abline()
에서 사용하는 미적 요소는 geom_vline()
, geom_hline()
과 동일하다.
이번에는 앞서 그렸던 산점도에 선형 회귀분석 결과에 따른 회귀선을 그려보겠다.
먼저 데이터에 대한 선형회귀 모델을 다음과 같다.
lm_model <- lm(취업자수 ~ 졸업자수, df_취업률_2000)
summary(lm_model)
##
## Call:
## lm(formula = 취업자수 ~ 졸업자수, data = df_취업률_2000)
##
## Residuals:
## Min 1Q Median 3Q Max
## -120.610 -1.932 0.068 1.975 126.175
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.291736 0.277827 1.05 0.294
## 졸업자수 0.546750 0.003637 150.33 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 10.56 on 1998 degrees of freedom
## Multiple R-squared: 0.9188, Adjusted R-squared: 0.9187
## F-statistic: 2.26e+04 on 1 and 1998 DF, p-value: < 2.2e-16
이 선형회귀 모델의 결과를 보면 기울기에 해당하는 ’졸업자수’의 회귀계수는 0.546750으로 산출되었고 Y절편 값에 0.291736으로 산출되었다. 이 값들을 다음과 같이 변수에 저장해둔다
a <- lm_model$coefficients[2]
b <- lm_model$coefficients[1]
df_취업률_2000 |>
ggplot() +
geom_point(aes(x = 졸업자수, y = 취업자수)) +
geom_vline(xintercept = x_mean, color = 'red', linetype = 2) +
geom_hline(yintercept = y_mean, color = 'blue', linetype = 3) +
geom_abline(slope = a, intercept = b, color = 'dark green', size = 1, linetype = 1)
'ggplot2' 카테고리의 다른 글
대학 종류별 학과 분포 그래프 in R - 업셋(Upset) 그래프 (3) | 2022.07.16 |
---|---|
대학의 계열별 수도권 입학정원 시각화 in R - 막대 그래프 안에 막대 그래프 (3) | 2022.07.09 |
박스 플롯(Boxplot)에 평균값 표현하기 in R (0) | 2022.06.12 |
밀도 분포 플롯(geom_density) in R (0) | 2022.06.12 |
박스 플롯(Boxplot) in R (0) | 2022.06.11 |
댓글