5-2. R그래픽 : ggplot2 활용
1) R 그래픽 : ggplot2 패키지 구조
Grammar of graphics
(1) ggplot()이라는 기본 함수
+
(2-1) Layers : aes (Aesthetic) : 데이터를 어떻게 넣을건지
(2-2) Layer : geom (Geometric objects) : points(점), line(선) 등
(2-3) Layer : coor (coordinate system)
1. scale+coordinate system은 그림을 그릴때 캔버스로 생각하면 됨
2. 그 위에 data+mapping+geom을 추가
3. geom(기하학적 요소) : geom_point, geom_smooth등을 이미 그려진 산점도에 추가하여(incremental) 그릴 수 있음
2) R 그래픽 : ggplot2 그래프
- ggplot(데이터이름, aes(x=x축변수, y=y축변수, color=factor변수, shape=factor변수))+geom_point(size=3)
setwd("D:/R files/week5__2")
install.packages('ggplot2')
library(ggplot2) 준비사항
car<-read.csv("autompg.csv")
head(car)
str(car)
car1<-subset(car, cyl==4 | cyl==6 | cyl==8)
attach(car1) 데이터핸들링
str(car1)
car1$cyl<-as.factor(car1$cyl) factor변수로 정의해야 ggplot에서 사용 가능
par(mfrow = c(1, 1))
ggplot(car1, aes(x=wt, y=disp, color=cyl, shape=cyl)) + geom_point(size=3, alpha=0.6)데이터탐색(그래픽)
- ggplot2 : scatterplot by group (cyl) 변수 (lec5_2.R)
- ggplot2 : ggplot객체들의 설명
ggplot(car1, aes(x=wt, y=disp, color=cyl, shape=cyl)) +
ggplot함수에 데이터는 car1을 이용하고, x축에는 wt(차의 무게)를, y축에는 disp(배기량)의 산점도를 그리고, 점의 색상은 cyl(실린더 수)로 표현한다. +커맨드로 다른 것 추가 가능
geom_point(size=3, alpha=0.6)
geom_point는 size=3(숫자 클수록 점 크기가 커짐)
- mpg의 크기를 표시한 그래프
ggplot(car1, aes(x=wt, y=disp, color=mpg, size=mpg)) + geom_point(alpha=0.6)
설명 : 차의 무게와 배기량의 산점도에 연비의 높고 낮음을 원의 사이즈와 색으로 표시한 그래프
- ggplot의 기본
ggplot : 새로운 ggplot을 생성
aes : aesthetic mapping을 구성 (데이터, 그래프구조)
qplot : 즉석 그림
- geom 함수군
geom_abline, geom_hline, geom_vline
geom_bar
geom_point
geom_boxplot
geom_map
geom_smooth, stat_smooth
- geom_bar을 이용한 단계별 그래프 설명
p1<-ggplot(car1, aes(factor(cyl), fill=factor(cyl)))
p1
grid를 그림-cyl에 따라서
p1<-p1 + geom_bar(width=.5)
p1
geom_bar을 이용한 cyl 빈도의 막대그래프
p1<-p1 + facet_grid(. ~ origin)
p1
cyl의 bar chart를 변수 'origin'에 따라 그림
ggplot(car1, aes(factor(cyl), fill=factor(cyl)))+ geom_bar(width=.5)+ facet_grid(. ~ origin)
- geom_bar을 이용한 누적 막대그래프
p <- ggplot(data=car1, aes(factor(cyl)))
p + geom_bar(aes(fill=factor(origin)), colour="black")
- geom_bar을 이용한 누적 막대그래프 - 한글제목 넣기
par(family="나눔고딕", cex=1.3)
p <- ggplot(data=car1, aes(factor(cyl)))
p<-p + geom_bar(aes(fill=factor(origin)), colour="black")
p<-p+ggtitle("자동차데이터")
p
- ggplot 산점도에 회귀선 넣기 : step1
autpmpg 데이터 사용 : 차량무게에 따른 연비 예측
ggplot(car1, aes(x=wt, y=mpg))+geom_point(shape=1)
ggplot(데이터이름, aes(x=x축변수, y=y축변수))
geom_point(shape=1, size=)
- ggplot 산점도에 회귀선 넣기 : step2
ggplot(car1, aes(x=wt, y=mpg)) + geom_point(shape=1) + geom_smooth(method=lm)
geom_smooth(method=lm) : 선형회귀식 추가, 선형식의 95% 신뢰구간이 default로 그려짐
ggplot(car1, aes(x=wt, y=mpg)) +
geom_point(shape=1) + geom_smooth(method=lm, se=FALSE)
옵션 : 신뢰구간이 없는 회귀선
- ggplot 산점도에 비선형회귀선 적합 : step3
ggplot(car1, aes(x=wt, y=mpg)) + geom_point(shape=1) + geom_smooth(method="loess")
loess(local polynomial regression)
3) ggplot2 그래픽 사이트
- R-studio의 ggplot2 활용 요약
https://www.rstudio.com/wp-content/uploads/2015/03/ggplot2-cheatsheet.pdf
'공부 > R & Python' 카테고리의 다른 글
5-4. R그래픽-공간지도분석 (0) | 2020.02.15 |
---|---|
5-3. R 그래픽-3D, 히트맵 (0) | 2020.02.15 |
5-1. R 그래픽 : lattice와 gglpot2 (0) | 2020.02.13 |
4-4. 그래픽과 레이아웃(그래픽 옵션) (0) | 2020.02.13 |
4-3. R 그래픽 기초 3 (산점도) (0) | 2020.02.13 |