본문 바로가기
R

R - 그래프 살펴보기(ggplot2 - 산점도, 막대그래프)

by d22pinsights 2024. 7. 13.

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

그래프를 만들 떄 가장 많이 사용하는 패키지는 ggplot2이다

library(ggplot2)

 

ggplot2 문법 이해하기

8장 183p

배경을 만들고, 그 위에 그래프 형태를 그리고, 마지막으로 축 범위, 색, 표식 등 설정을 추가하는 순서로 그래프를 만든다

추가할 때는 (+) 더하기 연산자를 사용한다

 

산점도(Scatter plot) - geom_point()

- 연속 값으로 된 두 변수의 관계를 표현할 때 사용

library(ggplot2)
mpg <- as.data.frame(ggplot2::mpg)
ggplot(data = mpg, aes(x = displ, y=hwy))

ggplot만 하면 x축, y축 배경이 그려진다

ggplot(data = mpg, aes(x = displ, y=hwy)) + geom_point()

+ 연산자를 통해 그래프 유형을 지정한다. 

산점도는 geom_point()

# x축 범위 3~6, y축 범위 10~30으로 지정
ggplot(data = mpg, aes(x = displ, y = hwy)) + 
  geom_point() + 
  xlim(3, 6) + 
  ylim(10, 30)

xlim(3,6) : x축의 범위를 3~6으로 지정

ylim(10,30) : y축의 범위를 10~30으로 지정

이렇게 지정하면 경고메시지가 뜨는 데, 그건 범위 지정으로 인해 105개의 행이 그래프에 표현되지 않았다는 뜻이다

 

8장 187p

다른 그래프를 그릴 때도 위 구조에서 그래프의 종류만 바꿔주면 쉽게 그릴 수 있다

이제 다른 그래프도 그려보자!

 

 막대 그래프 - geom_col()

막대 그래프는 데이터의 크기를 막대의 길이로 표현한 그래프이다.

library(dplyr)

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

df_mpg <- mpg %>% group_by(drv) %>% 
          summarise(mean_hwy = mean(hwy))

mpg 데이터를 가지고 와서, drv(구동방식) 별 평균 hwy(고속도로 연비) 를 구한다

 

ggplot(data = df_mpg, aes(x=drv, y=mean_hwy)) + geom_col()

geom_col() 를 통해 막대 그래프를 그릴 수 있다

 

ggplot(data = df_mpg, aes(x=reorder(drv, -mean_hwy), y=mean_hwy)) + geom_col()

reorder()를 통해 x 축 변수와 정렬 기준으로 삼을 변수를 지정할 수 있다

지금은 x 축 변수는 drv, 정렬 기준은 mean_hwy

정렬 기준 변수 앞에 (-) 마이너스 기호를 붙이면 내림차순으로 정렬한다

 

빈도 막대 그래프 만들기 - geom_bar()
ggplot(data=mpg, aes(x=drv)) + geom_bar()

빈도 막대 그래프를 만들려면 x축만 지정하고 geom_bar()를 사용하면 된다

 

geom_col vs geom_bar

둘 다 막대 그래프를 그려 주지만, 차이점은 요약표를 이용하는지 원자료를 이용하는지에 따라 사용하는 함수가 다르다

요약표는 geom_col()를 사용, 원자료는 geom_bar()를 사용한다.

 평균 막대 그래프 : 데이터를 요약한 평균표를 먼저 만든 평균표를 이용해 그래프 생성 - geom_col()

 빈도 막대 그래프 : 별도로 표를 만들지 않고 원자료를 이용해 바로 그래프 생성 - geom_bar()

 

ggplot() vs qplot()

   qplot() : 전처리 단계 데이터 확인용 문법 간단, 기능 단순

    ggplot() : 최종 보고용. , 크기, 폰트 등 세부 조작 가능