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 레이블 글자 크기