22.1 제목과 XY축 레이블 추가하기
먼저 그래프 제목(main/sub title)과 XY축 라벨(XY axis label)을 추가하는 방법으로 title()
함수의 사용 방법에 대하여 알아 보겠습니다.
title()
함수에 사용하는 옵션으로는 주 제목 main
, 부 제목 sub
, X축 라벨 xlab
, Y축 라벨 ylab
등이 있습니다.
title(main = "main title to the top of plot in a large font",
sub = "sub-title sub at the bottom in a smaller font",
xlab = "x axis label",
ylab = "y axis label")
높은 수준의 그래프 함수, 즉 hist()
, boxplot()
, barplot()
, plot()
등의 함수 안에서도 주 제목, 부 제목, X
축 레이블, Y축 레이블을 직접 지정할 수도 있습니다.
다음의 예는 높은 수준의 그래프 함수로 이를 표시한 예입니다.
##----------------------------------------------
## 제목, 부제목, X축과 Y축의 레이블 추가하기
##----------------------------------------------
library(MASS)
par(mfrow = c(1, 1))
# 방법 (1) : 높은 수준의 함수 plot() 함수의 예
plot(MPG.highway ~ Weight, Cars93,
main = "제목 : Weight와 MPG.highway의 산점도",
sub = "부제목 : 높은 수준의 그래픽 함수",
xlab = "x 레이블 : Weight",
ylab = "y 레이블 : MPG.highway")
위의 그래프와 똑같은 그래프를 낮은 수준의 그래프 함수를 사용해서 그려보겠습니다.
먼저 고급 수준의 함수 plot()
함수를 이용하여 플롯을 합니다. plot()
함수의 인수로 “ann = FALSE
” 옵션을 추가해서 기본 플롯만 그립니다.
그런 다음, 위의 기본 플롯에 낮은 수준의 그래프 함수(Low level graphic function) title()
함수를 사용해서 제목, 부제목, x 레이블, 그리고 y 레이블 등의 부가정보를 추가해 보겠습니다.
library(MASS)
# 방법 (2) : 낮은 수준의 함수 title() 함수의 사용 예
# 1) 고급 수준의 함수 plot() 함수를 이용하여 기본 플롯을 작성합니다.
# X와 Y 레이블의 삭제 : ann = FALSE
plot(MPG.highway ~ Weight, Cars93, ann = FALSE)
# 2) 낮은 수준의 함수 title() 함수를 이용해 제목, 부제목, x 레이블, 그리고 y 레이블 등의 부가정보를 추가합니다
title(main = "플롯의 상단부에 큰 폰트로 표시되는 제목",
sub = "바닥에 작은 폰트로 표시되는 부제목",
xlab = "x 축 레이블",
ylab = "y 축 레이블")
높은 수준의 그래프 함수에서도 주 제목, 부 제목, XY축 Label 등을 설정할 수 있는데 왜 굳이 낮은 수준의 그래프 함수 title()
을 가지고 추가 정보를 입력하는지 의아할 수도 있겠습니다.
높은 수준의 그래프 함수 중에 부가정보를 입력할 수 없는 그래프 함수도 있으며, R의 장점 중에 하나가 대화형으로 그래프의 부가 정보를 추가하는 것을 직접 확인할 수 있습니다. 따라서 매우 직관적으로 탐색적 데이터 분석을 할 수 있다는 점입니다.
참고로, 지난번 포스팅에서 소개한 그래프 모수 (graphics parameters) 중에서 기호의 크기를 설정하는 “cex.main =
,” “cex.sub =
,” “cex.lab =
” 옵션을 사용해서 주 제목, 부 제목, XY축 레이블의 크기를 변경해보겠습니다.
library(MASS)
# 제목, 부제목, xy 레이블의 글자 크기를 수정하기
# X와 Y 레이블의 삭제 : ann = FALSE
plot(MPG.highway ~ Weight, Cars93, ann = FALSE)
# 제목, 부제목, x 레이블, 그리고 y 레이블 등의 부가정보를 추가하면서, 글자 크기도 수정합니다.
title(main = "cex가 2.2인 제목",
sub = "cex가 1.5인 부제목",
xlab = "cex가 1인 x 레이블",
ylab = "cex가 1인 y 레이블",
cex.main = 2.2, # 제목의 글자 크기
cex.sub = 1.5, # 부제목의 글자 크기
cex.lab = 1) # x와 y 레이블 글자 크기