SW/R

R : ggplot (개념 및 예제)

얇은생각 2019. 2. 26. 12:30
반응형

ggplot

R은 기본 그래프 도구들을 제공합니다. 따라서 그 도구들을 활용해 시각화가 가능합니다. 하지만 고급화된 시가고하를 위해 ggplot을 활용합니다. 그래서 이 패키지를 활용하기 위해서는 ggplot2를 설치해야합니다. 패키지 설치 방법은 이전에 포스팅한 내용을 참고해주세요.




기본 문법

ggplot(data=ds, aes(x=x1,y=x2))+geom_xx()+ ..


먼저 그래프를 그릴 대상을 dataset으로 입력합니다. 그 후 x축과 y축 데이터를 입력합니다. 마지막으로 그래프의 형태를 지정하는 것이 기본 문법입니다. 단일 그래프를 활용할 때 주로 사용합니다.



ggplot()+geom_xx(data=xx, aes(x=x1,y=x2))+ ..


위 문법은 여러 그래프를 하나로 겹쳐 그릴 때 편리하게 사용하는 문법입니다. 기호에 맞게 활용하시면 됩니다.



library(ggplot2)

ggplot(data=iris, aes(x=Petal.Length, # 데이터 및 x축 입력
y=Petal.Width))+geom_point() # y축 및 그래프 종류 입력


ggplot()+geom_point(data=iris,aes(x=Petal.Length, # 데이터 및 x축 입력
y=Petal.Width)) # y축 및 그래프 종류 입력



위 2가지 문법을 실행하면 위와 똑같은 결과를 확인할 수 있습니다. 결론적으로, 다른 문법이지만 같은 산출물을 확인할 수 있습니다.




geom_point() 옵션

- x : x축 데이터 (x-axis data)

- y : y축 데이터 (y-axis data)

- alpha : 점의 투명도 (transparency of points)

- colour(color) : 점의 색깔 (color of dots)

- fill : 점안을 채울 색깔 (color to fill in the lining of the dots)

- group : 데이터의 그룹정보 (Group information of data)

- shape : 점의 모양 (the shape of a point)

- size : 점의 크기 (Size of point)

- Stroke : 테두리 굵기 (Thick border)



산점도 그래프 예제

gp <- ggplot(data=iris, # 데이터 입력
aes(x=Petal.Length, y=Petal.Width))+ # x,y 축 입력
geom_point( # 그래프 종류 입력
aes(color=Species, shape=Species), # 그래프 모양 입력
alpha=0.5, # 투명도 입력
size=2) # 크기 입력

# 그래프 title
gp+ggtitle("IRIS data")+ # 제목 입력
theme(plot.title = element_text(size=14, # 크기 입력 및 서식 입력
face="bold",color="blue", hjust=0.5))



위 예제를 통해 산점도를 종류별로 표현하는 법을 확인할 수 있습니다. 또 그래프의 제목을 추가로 입력할 수 있습니다. 보는 바와 같이 서식을 편집해서 입력할 수 있습니다.



주의 사항

ggplot(data=my.iris, aes(x=Petal.Length,
y=Petal.Width))+
geom_point()


코드를 작성하다보면 명령어가 길어집니다. 따라서 여러 줄에 걸쳐 작성해야만 합니다. 그런 경우 다음 줄에 이어진다는 것을 표현해야 합니다. 위와 같이 + 기호를 활용하면됩니다.



꺽은선 그래프 예제

ggplot(mtcars, aes(x=wt, y=mpg)) + # 그래프 입력
geom_line(color='red', size=1) #그래프 표현



꺾은선 그래프는 위와 같이 표현합니다. 산점도와 매우 유사합니다. 하지만 line을 point 대신 입력해주어야 합니다.



막대 그래프 예제

df = data.frame(table(mtcars$carb))

ggplot(df, aes(x=Var1,y=Freq))+ # 데이터 및 축 입력
geom_bar(stat="identity", width=0.7, # 그래프 종류 및 서식 입력
fill="steelblue")



막대 그래프도 표현할 수 있습니다. 다시말해서 geom에 bar을 입력하면 막대그래프가 나타납니다. 다양한 그래프를 표현할 수 있는 ggplot의 장점을 알 수 있습니다.



Boxplot 그래프 예제

ggplot()+
geom_boxplot(data=iris, # 데이터 입력
aes(x=Species,y=Petal.Length, # 축 입력
fill=Species)) # 표현 데이터 입력



boxplot 역시 표현할 수 있습니다. 마찬가지로 geom 다음에 boxplot을 입력해주면 됩니다. 즉 ggplot 패키지를 활용한다면 다양한 그래프를 손쉽게 나타낼 수 있습니다. 이 패키지를 활용해 효율적인 데이터 표현이 가능합니다.

반응형