본문 바로가기
공부/R & Python

5-2. R그래픽 : ggplot2 활용

by 드인 2020. 2. 14.

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 

 

RStudio | Open source & professional software for data science teams

RStudio provides free and open source tools for R and enterprise-ready professional software for data science teams to develop and share their work at scale.

rstudio.com