R에는 다양한 그래프 패키지들이 있는데요, 그 중에서도 가장 많이 사용되는 패키지 3개를 들자면 Base Graphics package(Base package로서 별도 설치 필요 없음), Lattice package(별도 설치/호출 필요), ggplot22 package(별도 설치/호출 필요) 를 꼽을 수 있습니다.
시중에 나와있는 많은 수의 R 관련 책에서는 Base Graphics package를 가지고 R 그래프 소개를 많이 하고 있는 편이구요, R 그래프/시각화 전문 책에서는 ggplot2에 무게중심을 두고 쓰여진 책이 많은 편인데요, 저는 ggplot2를 중심으로 'R 그래프/시각화' 카테고리에 포스팅을 해보려고 합니다. (ggplot2를 주로 쓰고, 부수적으로 Base Graphics package, Lattice package 의 그래프 R script를 참고용으로 간략히 소개하는 식으로 글을 써나갈까 합니다.)
[ R 그래프 패키지 ]
일단 Base Graphics, Lattice, ggplot2에 대해 간략히 장단점을 짚어보고, 그 다음으로 ggplot2의 문법에 대해도 간략히 소개하겠습니다.
package |
author |
장점 |
단점 |
Base Graphics |
R Core Team and contributors worldwide |
- 별도 설치/호출 필요 없음 - 쉽고 편함 - 사람이 생각하는 방식처럼 |
- 한번 실행하면 취소 못함 - 미리 계획 필요 |
Lattice |
Deepayan Sarkar |
- 전체 데이터를 보고 세로축, - 여러개 그래프를 동시에 하나의 화면에 그릴때 편리 |
- 순차적으로 그래프 쌓아가는 것 안됨 - 직관적이지 못함 |
ggplot2 |
Hadley Wickham |
- Base Graphics 와 Lattice의 장점만 골라놨음 - 그래프 문법에 따라 체계적, 통계적 조건 등 부여하여 |
- 처음 배우기가 상대적으로 어려움 (단, 일단 문법이 익으면 그때부터는 생산성 더 높음) |
위 표에서 언급했듯이 ggplot2가 Base Graphics의 interactive하게 하나씩 생각하고, 그려보고, 눈으로 확인하고, 그래프 위에 하나 더 쌓아서 그려보고...하는 직관적인 방식의 장점과, Lattice의 여러개의 집단 전체 데이터의 범위를 보고 축/마진/여백 등을 자동 설정해주는 등의 편리함의 장점을 따다가 '그래프 문법(Grammer of Graphics)'이라는 체계적인 방식으로 만들어진 패키지이다 보니 ggplot2를 추천하는 바입니다. (ps. 그냥 R로 그래프 몇 개 그리다 말거면, 그냥 일회성으로 쉽게 뚝딱 그래프 그리고 말거면 편하게 Base Graphics 패키지 활용하는게 견적이 더 좋을 수도 있겠습니다. 하지만 그래프 많이 쓰는 사용자라면 Base Graphics는 예외 케이스가 많아서 나중에는 생산성이 ggplot2에 비해 떨어집니다.)
그래프의 문법(Grammer of Graphics)라고 말씀드렸는데요, 그래프를 그리는데에도 "동사(Verb)", "명사(Noun)", "형용사(Adjective)"라는 체계를 갖추어 문법을 만들었다고 보면 되겠습니다.
"In brief, the grammer tells us that a statistical graphic is a mapping from data to aesthetic attirbutes (colour, shape, size) of geometric objects (points, lines, bars). The plot may also contain statistical transformations of the data and is drawn on a specific coordinate system"
- source : ggplot2 book
[ R ggplot2 Components ]
lattice와 ggplot2 패키지 설치 및 패키지 호출은 아래와 같이 하면 됩니다.
## lattice 패키지 설치/호출 install.packages("lattice")
## ggplot2 패키지 설치/호출 install.packages("ggplot2") |
이번 포스팅이 도움이 되었다면 아래의 '공감 ~♡' 단추를 꾸욱 눌러주세요.^^
'R 분석과 프로그래밍 > R 그래프_시각화' 카테고리의 다른 글
R ggplot2 원그림(geom_bar() + coord_polar()) (0) | 2015.08.22 |
---|---|
R ggplot2 막대그림(geom_bar()) (5) | 2015.08.22 |
R ggplot2 박스 그래프 (geom_boxplot()), 바이올린 그래프(geom_violin()) (0) | 2015.08.21 |
R ggplot2 히스토그램 (goem_histogram()), 커널 밀도 곡선 (Kernel Density Curve) (15) | 2015.08.20 |
R 왜 그래프/시각화인가? (Why Graphs/Visualization?) (3) | 2015.08.18 |