본문 바로가기
R

R - 그래프 살펴보기(ggplot2 - 선그래프, 상자그림)

by d22pinsights 2024. 7. 27.

참고 : Do it! 쉽게 배우는 R 데이터분석

SQL만 하다가 R 까먹을까봐... R 그래프 스타투

 

library(ggplot2)

그래프 그릴 때 사용하는 library 먼저 불러줬다

 

선그래프(line chart) - geom_line()

- 시간에 따라 달라지는 데이터를 표현할 때 주로 이용

- ex) 환율, 주가지수 등 경제 지수 같은 시계열 데이터

 

ggplot2 패키지에 들어있는 economics 데이터를 이용할 것이다

economics <- as.data.frame(ggplot2::economics)
head(economics)

데이터를 살펴보면, date 열에 날짜 변수가 있는 걸 알 수 있다

x축에는 시간을 나타내는 date, y축에는 실업자 수를 나타내는 unemploy를 지정하고 선 그래프를 그려보자

ggplot(data=economics, aes(x=date, y=unemploy)) + geom_line()

간단하게 살펴보면, 2005년 이후 갑자기 증가했다가, 2010년 이후 다시 감소하는 추세를 알 수 있다

 

 

상자그림(box plot) - geom_boxplot()

- 데이터의 분포를 직사각형 상자 모양으로 표현한 그래프

- 데이터의 특징을 더 자세히 이해할 수 있다

여기서는 mpg 데이터를 사용할 것이다

mpg<-as.data.frame(ggplot2::mpg)

구동방식을 나타내는 drv와 고속도로 연비를 나타내는 hwy를 가지고 상자그림을 표현해보자

ggplot(data = mpg, aes( x= drv, y=hwy)) + geom_boxplot()

상자 그림의 값은 사분위수를 이용해 그려진다

그래프를 살펴보면

  • 4륜구동은 17~22 사이에 대부분의 자동차가 모여있다.
  • 전륜구동(f)는 26~29사이의 좁은 범위에 자동차가 모여있다. 수염 위 아래에 점 표식이 있는 것을 보면 극단치가 존재한다는 것을 알 수 있다
  • 후륜구동(r)은 17~24사이의 넓은 범위에 자동차가 분포하고 있다. 
상자 그림 설명
상자 아래 세로선 아랫수염 하위 0~25% 내에 해당하는 값
상자 밑면 1사분위수(Q1) 하위 25% 위치 값
상자 내 굵은 선 2사분위수(Q2) 하위 50% 위치 값(중앙값)
상자 윗면 3사분위수(Q3)  하위 75% 위치 값 =  상위 25%
상자 위 세로선 윗수염 하위 75~100% 내에 해당하는 값
상자 밖 점 표식 극단치 Q1, Q3 밖 1.5 IQR을 벗어난 값

IQR = Q3-Q1 : Q1과 Q3 사이의 거리

 

혼자 해보기

Q1. psavert(개인 저축률)가 시간에 따라서 어떻게 변해왔는지 알아보려고 합니다. 시간에 따른 개인 저축률의 변화를 나타낸 시계열 그래프를 만들어 보세요.

library(ggplot2)
economics <- as.data.frame(ggplot2::economics)
ggplot(data=economics, aes(x=date, y=psavert))+ geom_line()

 Q2. class(자동차 종류)"compact", "subcompact", "suv"인 자동차의 cty(도시 연비)가 어떻게 다른지 비교해보려고 합니다. 세 차종의 cty를 나타낸 상자 그림을 만들어보세요.

library(ggplot2)
mpg<-as.data.frame(ggplot2::mpg)
Q2 <- mpg %>% filter(class %in% c("compact","subcompact","suv")
ggplot(data = Q2, aes(x=class, y=cty)) + geom_boxplot()