본문 바로가기

R

[R]ggplot2에 대해 파헤쳐 보자!!(feat.심화편)

안녕하세요! 오늘은 ggplot 심화에 대해 알아보도록 하겠습니다.

 

말만 심화이고, 부차적인 기능에대해 설명하고자 합니다ㅎㅎ(좀 더 전문가스럽게 쓰는 방법이랄까요)

 

기본적인 문법은 아래를 참고해주세요!

https://datapedia.tistory.com/2

 

[R] ggplot2에 대해 파헤쳐 보자!!(feat.기초편)

많은 사람들이 R에서 시각화 패키지로 'ggplot2'를 사용합니다. 그 이유는 아마 기존 R패키지와는 달리, 예쁜 그래프를 보여줘서 그런거 같습니다. ggplot을 썼구나를 알아채는 대표적인 방법은 뒤에 회색 그리드(..

datapedia.tistory.com

 


1. coord_flip: x축 y축 바꾸기

*flip: 뒤집다

x축과 y축을 한줄로 switch해주는 기능 입니다!

생각 나는 대로 먼저 x축과 y축을 설정해준 다음,

x축과 y축을 바꾸고 싶을때 쓰시면 됩니다.

#coord_flip: x축 y축 변환
ggplot(data = mpg, mapping = aes(x=displ, y=hwy)) +
  geom_point() +
  coord_flip()

 

coord_flip 적용 후(왼쪽) // 전(오른쪽)

 

 

 

2. 면분할 - facet_grid 과 facet_wrap

면을 나눠서 여러가지 그래프를 한번에 보고싶을때 사용합니다.

facet_grid 과 facet_wrap의 차이점은,

facet_wrap은 nrow 설정으로, 몇 줄 혹은 몇 열로 나타나는 것을 지정해 줄 수 있습니다.

범주형 데이터가 있을때 각각의 특징을 파악하는데 좋겠죠?!

 

#facet_grid
ggplot(data = mpg) + 
  geom_point(mapping = aes(x=displ, y=hwy)) +
  facet_grid(drv~cyl) #y축~x축 이2개 변수로 구분하여 플롯을 나눠그려라

facet_grid

#facet_wrap:nrow = 2줄로 고정!
ggplot(data = mpg) + 
  geom_point(mapping = aes(x=displ, y=hwy)) +
  facet_wrap(~class, nrow=2) #class에 대해서 각각 면 분할로 보고싶다!!(class변수는 범주형입니다.)

 

facet_wrap

 

##facet_grid(scales=)옵션

aka) 공간활용의 크기를 설정하는 옵션

#facet_grid()함수의 인수인 scales는 디폴트 값으로
#“fixed”를 가지며 이때에는 분할된 면 마다 x축 변수, y축변수가 모두 나타난다.
#“free_x”인 경우 x축 변수가 면에 따라 다르게 나타나며
#“free_y”인 경우 y축 변수가 면에 따라 다르게 나타난다.
#“free”인 경우 x축변수, y축변수가 모두 면에 따라 다르게 나타난다.

 

 

3. theme 함수 - panel.grid

위 기능을 알기 위해서는 grid에 대한 개념과

major선 minor선을 알고 있으면 도움이 됩니다!

아래 필기를 봐주세요!

 

grid란??major grid선과 minor grid 선

 

그렇다면 여기에 x축과 y축 개념이 들어가면 어떻게 될까요???

panel.grid x축과 축

그럼 바로 어떻게 사용하는지 확인해보죠!

보통은 그리드 선에 변화를 주고 싶을 때 씁니다.

 

1. 선에 색을 추가하거나(elemet_line())

panel.grid.major.x = element_line(color='red')

2. 선을 없앨 때(elemt_blank())

panel.grid.major.y = element_blank()

 

library(gcookbook) #데이터 불러오기용

#2001년 메이저리그 탑 히터 야구 선수 데이터
data("tophitters2001")

#그 중에서도 1부터 25개 데이터(25개 관측치)만 가져옵니다.
tophit = tophitters2001[1:25,]

#시각화 시작!
#여기서는 major.y축을 blank(없애라)는 명령어를 사용했습니다.
ggplot(tophit, aes(x=reorder(name, avg), avg)) +
  geom_point(size=3) +
  theme(axis.text = element_text(angle = 60, hjust = 1),
        panel.grid.major.y = element_blank())

 

panel.grid.major.y = element_blank()

그림에서 grid 선의 major.y 축 선이 사라졌음을 볼 수 있습니다!

 

 

4. theme_bw()

원래 ggplot 패키지를 쓰면 뒷배경이 회색이 나왔죠?

이 배경색을 바꿔줄 수도 있습니다.

배경색을 흰색으로 할래 하면

theme_bw() 이거 한줄만 추가해 주시면 됩니다!

bw는 black & white란 뜻입니다.

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

ta-daa!!

theme_bw()

 

배경이 하얀색이 되었음을 볼 수 있습니다!

 

오늘의 포스트는 여기까지!

감사합니다.