R 그래프 종류와 qplot으로 쉽게 그리기

2019. 6. 8. 10:00

기업에서 보고를 할 때는 그래프를 많이 쓰지 않는다. 그래프를 그리면 이해하기 쉽고 직관적으로 보일 것 같지만, 사람들은 숫자를 더 좋아하는 것 같다. 그래서 그래프를 잘 사용하지 않게 된다. 하지만, 최근에 분석의 관점에서 그래프를 이용하는 것의 장점에 크게 동감했다. 인싸이트를 얻기 쉽고 빠르게 분석을 할 수 있다는 것이다. 확실히 숫자보다는 그래프가 해석하기에 필요한 시간이 적다.

오늘은 R의 그래프 종류와 qplot으로 쉽게 그리는 방법에 대해서 알아보도록 하겠다.


R_박스플랏



R에서 그래프를 그리는 방법은 여러가지가 있다. 그 중에서 가장 유명한 방법은 ggplot모듈을 이용하는 방법이다. ggplot은 그래프에 여러 옵션을 주고 이렇게도 그려보고 저렇게도 그려보는 등의 작업을 하기에 용이하다. 하지만 간단한 그래프를 빠르게 그리기 위해서는 ggplot모듈에서 제공하는 qplot이 적합하다. 여기서는 qplot을 이용해서 그래프를 그리는 방법에 대해서 알아보도록 하자.


그래프_목적_용도

( 그래프의 목적과 용도)



그래프를 그리기 전에 데이터셋이 필요하다. 인터넷에 보니 타이타닉 데이터셋으로 분석을 처음 시작하는 사람이 많은 듯 하다. 여기서도 타이타닉 데이터셋을 불러와서 사용해보도록 하겠다. 


  library(readr)

  df <- read_csv("https://raw.githubusercontent.com/agconti/kaggle-titanic/master/data/train.csv")


  library(ggplot2)

  df <- na.omit(df)


  df$Survived <-  as.character(df$Survived)


타이타닉 데이터셋을 불러오고, ggplot2모듈을 불러온다. na값이 있어 na.omit함수를 이용해서 na를 삭제해준다. 생존여부 데이터가 numeric으로 되어 있어 character로 변경해주었다.



qplot의 구조는 간단한다. 'qplot('을 입력하고 차례대로 '데이터셋, x, y, 그래프 형태'를 입력해주면 된다. 아래에 보면 x=, y=을 매번 입력해주었는데 생략해도 된다.


1. 박스 플랏

  # 1) 하나 그리기

  qplot(data=df, x="age", y=Age, geom="boxplot")

  # 2) 그룹으로 그리기

  qplot(data=df, x=Survived, y=Age, geom="boxplot")


박스 플랏을 하나만 그리는 것은 쉬운데, 그룹으로 그리는 것이 헷갈려서 같이 작성해보았다. x=, y=은 생략하고 코드를 작성해도 된다. 하나일 때는 x에 문자를 입력하고, 그룹별로 그릴 때는 그룹별로 그릴 변수를 입력하면 된다고 생각하면 쉽다. 그룹으로 그린 그래프 결과는 제일 상단에 있다.

단순하게 하나만 그릴 때는 ggplot없이 boxplot(df$Age)로 그려도 쉽게 그릴 수 있다.


2. 히스토그램

  # 1) 하나 쉽게 그리기

  hist(df$Age)


  # 2) 하나 qplot으로 그리기

  qplot(data = df, Age, geom = "histogram")


  # 3) 그룹별 그리기

  qplot(data = df, Age, fill=Survived, geom="histogram")


  # 4) 그룹별 분포로 그리기

  qplot(data = df, Age, fill=Survived, alpha=0.5, geom="density")


히스토그램을 그룹으로 그릴 때 위아래로 그려주면 좋겠지만, 그 방법은 찾지 못했다. 그룹으로 그릴 때는 하나의 그래프에 색깔을 달리하여 그려진다. 4번째에 있는 방법으로 히스토그램을 그리면 아래와 같이 분포를 보기 쉽다.


히스토그램


3. 산점도

  # 1) 하나 그리기

  qplot(data =df, Age, Fare, geom="point")

  # 2) 그룹별 그리기

  qplot(data =df, Age, Fare, color=Survived, geom="point")


4. 라인 그래프

# 1) 하나 그리기

qplot(data =df, Age, Fare, geom="line")

# 2) 그룹별 그리기

qplot(data =df, Age, Fare, color=Survived, geom="line")

# 3) smooth하게 그리기

qplot(data =df, Age, Fare, color=Survived, geom="smooth")


보통 그룹별로 그릴 때는, fill이나 color에 값을 넣어주면 된다. 3번째 방법으로 geom에 smooth를 입력하고 그리면 아래와 같은 그래프가 그려진다. 그냥 그리는 것보다 데이터를 파악하기가 더 쉽다. 


라인그래프



5. 세로 막대

# 1) 하나만 그리기

qplot(data = df, Survived, geom="bar")

# 2) 그룹으로 그리기

qplot(data = df, Survived, fill=Embarked, geom="bar")


이 전에 그래프를 그리던 방법과 유사하다.


6. 가로 막대

# 1) 하나만 그리기

qplot(data = df, Survived, geom="bar") + coord_flip()

# 2) 그룹으로 그리기

qplot(data = df, Survived, fill=Embarked, geom="bar") + coord_flip()


coord_flip()을 붙여주면, 세로막대 그래프가 가로막대 그래프로 변경된다.


7. 파이 차트

# 1) 하나만 그리기

qplot(data = df, Survived, geom="bar") + coord_polar()

2) 그룹으로 그리기

qplot(data = df, Survived, fill=Embarked, geom="bar") + coord_polar()


coord_polar()를 입력하면 바차트가 파이차트로 변경된다. 하지만, 파이차트가 생각처럼 나오지 않는다. stat="identity"옵션을 주어야 하는데, 해당 옵션이 deprecated되었다고 한다. 파이 차트를 그리는 방법은 다음에 다시 업데이트하도록 하겠다.



오늘은 이렇게 R의 그래프 종류와 qplot으로 쉽게 그리는 방법에 대해서 알아보았다. 분석을 위한 목적으로 퀵하게 그리는 것에는 많은 도움이 되지 않을까 한다.


단축키를 알면 코드를 작성하는 데 효율적이다. R의 많이 사용되는 단축키가 궁금하다면 아래 포스팅을 참조해보자.
( 참조: R Studio 단축키 BEST3! )


댓글()