GC Jeong
GC Jeong
Sep 12, 2018 · 5 min read

#library(ggplot2)

#library(plyr)

예제 ToothGrowth를 분석 상황에 맞게 데이터를 만들어 보도록 하자.

여기서는 library(plyr)을 사용할 것 이다.

먼저 ToothGrowth를 살펴 보자

len supp dose
1 4.2 VC 0.5
2 11.5 VC 0.5
3 7.3 VC 0.5
4 5.8 VC 0.5
57 26.4 OJ 2.0
58 27.3 OJ 2.0
59 29.4 OJ 2.0
60 23.0 OJ 2.0

60여개의 관측치를 가지고 supp, dose의 범주형 변수도 가지고 있다.

library(plyr)
tg <- ddply(ToothGrowth, c(“supp”, “dose”), summarise, length=mean(len))

ddply에서는 변수 supp, dose를 범주로 summarise(기술 통계 요약)시키는 작업이다.

supp별, dose별로 묶어서 len의 평균을 length라는 새로운 변수를 만들어서 테이블로 만들어 준다.

supp dose length
OJ 0.5 13.23
OJ 1.0 22.70
OJ 2.0 26.06
VC 0.5 7.98
VC 1.0 16.77
VC 2.0 26.14

tg의 구조를 보기위해선 str()함수를 사용한다.

str(tg)

‘data.frame’: 6 obs. of 3 variables:
$ supp : Factor w/ 2 levels “OJ”,”VC”: 1 1 1 2 2 2
$ dose : num 0.5 1 2 0.5 1 2
$ length: num 13.23 22.7 26.06 7.98 16.77 …

ggplot(tg, aes(x=dose, y=length, colour=supp)) + geom_line()

colour=supp를 추가하면서 그룹을 두개의 라인으로 표현 된 것을 볼 수 있다.

ggplot(tg, aes(x=dose, y=length, linetype=supp)) + geom_line()

linetype=supp를 추가 함으로써 그룹을 라인의 종류를 다르게 해서 그래프가 표현된다.

ggplot(tg, aes(x=factor(dose), y=length, colour=supp, group=supp)) + geom_line()

간단하게 group=supp를 추가 함으로써 그룹별로 라인이 두개 그려짐을 확인 한다.

dose를 요인으로 인식시켰기 때문에 group 옵션을 사용해야 한다.

그룹화 옵션을 잘 못 사용하게 되면, 의도하지 않은 그래프가 생성된다.

ggplot(tg, aes(x=dose, y=length)) + geom_line()

#모양 있는 점을 라인과 같이 출력하기

ggplot(tg, aes(x=dose, y=length, shape=supp)) + geom_line() +
geom_point(size=4)

ggplot()안에 shape=supp를 추가하여 모양으로 supp를 구분하겠다고 선언했고, geom_point(size=4)로 점의 크기를 조절한다.

#점에 컬러 채우기

ggplot(tg, aes(x=dose, y=length, fill=supp)) + geom_line() +
geom_point(size=4, shape=21)

shape=21에 해당하는 모양의 점을 찍고, 그점을 supp별로 색갈 구분한다.

#dodge옵션을 통해서 약간 빗겨간 그래프 그리기

ggplot(tg, aes(x=dose, y=length, shape=supp)) +
geom_line(position=position_dodge(0.2)) +
geom_point(position=position_dodge(0.2), size=4)

position_dodge()옵션을 통해서 점들과 선들이 옆으로 조금씩 빗나가게 표현한다.

신나는연구소

신나는 일을 하며 삽시다!

GC Jeong

Written by

GC Jeong

#Data Analyst #세상을 보는 데이터 분석가 #책을 읽는 몽상가

신나는연구소

신나는 일을 하며 삽시다!

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade