Chapter 19 R의 Plotting System

R의 plotting system에는 크게 (1) Base Graphics, (2) Lattice, (3) ggplot2 의 3가지가 있습니다.

이 파트에서는 쉽고 빠르게, 대화형으로 직관적으로 그래프를 단계적으로 그려나갈 수 있는 Base Graphics plotting system에 대해서 알아보겠습니다.

Base Graphics system 은 기본 뼈대에 해당하는 (1) 높은 수준의 그래프 함수 (High Level Graphics facilities)를 이용하여 기본적인 그래프를 작성하고, 여기에 살을 하나, 둘씩 차근 차근 더해가는 (2) 낮은 수준의 그래프 함수 (Low Level Graphics facilities)를 적용합니다. 또한, 색깔이나 모양, 선 형태, 마진 등의 다양한 옵션을 적용하여 설정하는 (3) 그래픽 모수 (Graphic Parameters) 를 다양하게 조합하여 단계적으로 그래프를 작성하여 나가게 됩니다.

지금까지 설명한 내용을 구체적인 예로 산점도(scatter plot)을 이용하여 간단히 앞서 소개한 용어들이 의미하는 바를 살펴 보겠습니다. MASS 패키지에서 제공하는 Cars93 데이터 세트를 이용하겠습니다.

# 데이터 세트를 불러옵니다.
# install.packages(MASS)
library(MASS)
## 
## Attaching package: 'MASS'
## The following object is masked from 'package:dplyr':
## 
##     select
attach(Cars93)                         # Cars93을 공통으로 사용하는 데이터 프레임으로 지정합니다.

# 높은 수준의 그래프 함수 plot()를 이용하여 기본 그래프를 작성합니다.
# 그래픽 인수를 설정합니다. : type, pch, col, etc. (그래프의 유형, 모양, 그리고 색깔 등)
plot(MPG.highway ~ Weight, type = "p", pch = 19, col = "black") 
 
# 낮은 수준의 그래프 함수 abline(), title(), text() 등을 이용하여 그래프를 치장합니다.
# 그래픽 인수를 설정합니다. : labels, cex, pos, col, etc. (레이블, 글자크기, 위치, 색깔 등)
abline(lm(MPG.highway ~ Weight)) 
text(Weight, MPG.highway, labels = abbreviate(Manufacturer, minlength = 5),     
     cex = 0.6, pos = 2, col = "blue")

detach(Cars93)                          # 활성화된 데이터 프레임을 해제합니다.

이처럼 base plotting system의 그래프에서는 높은 수준의 그래프 함수, 낮은 수준의 그래프 함수, 그리고 그래프 모수 등으로 구성하여 그래프를 작성하게 됩니다.

  • 높은 수준의 그래프 함수 : plot() 함수를 먼저 그래프를 작성합니다.

  • 낮은 수준의 그래프 함수 : abline() 함수로 차의 무게(Weight)와 고속도로연비(MPG.highway) 간의 회귀선을 적합시키는 회귀선을 추가합니다. 그리고 text() 함수로 차 제조사 이름(Manufacturer)을 명기합니다.

  • 그리고 그래프 모수(parameters)로 그래프의 형태(type), 점의 형태(pch), 색깔(col), 레이블(labels), default 대비 확대 배수(cex), 다른 축과 교차되는 좌표(pos) 등의 추가적인 사항들을 옵션으로 설정합니다.

img