욱이의 냉철한 공부

[R, 시각화, 패키지] ggplot 패키지 사용하여 이쁘게 그래프 그리기2 - geom_bar(), 막대그래프 응용 본문

데이터분석/R

[R, 시각화, 패키지] ggplot 패키지 사용하여 이쁘게 그래프 그리기2 - geom_bar(), 막대그래프 응용

냉철한 욱 2021. 6. 28. 06:05

=> geom_bar()와 geom_smooth()는 여기서 확인하시면 됩니다.

https://warm-uk.tistory.com/75?category=810499 

 

[R, 시각화, 패키지] ggplot 패키지 사용하여 이쁘게 그래프 그리기1 - geom_point(), geom_smooth()

* 예시로 사용할 데이터 셋 mpg : 자동차 234종에 대한 데이터입니다. 총 234행 11열(변수)로 이루어져 있습니다. 변수명 내용 변수명 내용 manufacturer 제조회사 model 자동차 모델명 dispal 배기량 year 생

warm-uk.tistory.com

* 예시로 사용할 데이터 셋

mpg : 자동차 234종에 대한 데이터입니다. 총 234행 11열(변수)로 이루어져 있습니다.

변수명 내용 변수명 내용
manufacturer 제조회사 model 자동차 모델명
dispal 배기량 year 생산연도
cyl 실린더 개수 trans 변속기 종류
drv 구동 방식 cty 도시 연비
hwy 고속도로 연비 fl 연료 종류
class 자동차 종류
 

 


 

1. ggplot 패키지 설치 및 데이터 셋 확인

- ggplot2패키지는 ggplot패키지의 업데이트된 버젼이다.

- ggplot2패키지 내에 있는 mpg 데이터셋 객체를 불러와 데이터 프레임으로 만든다.

- ggplot2::mpg는 ggplot2에 들어있는 mpg 데이터를 지칭하는 코드

- ::를 이용하면 특정 패키지에 들어 있는 함수나 데이터를 지정할 수 있다.

- mpg 데이터 셋을 확인 해 본다

 

 

 

 

 

 

 

2. geom_bar()의 기본 - 인자 stat="identity"

임의로 사용할 데이터 프레임

- ggplot() 함수는 무슨 데이터를 사용 할지 정하고 그래프 그릴 준비를 활성화 한다고 생각하면 된다

- geom_bar() 함수는 구체적으로 무엇을 그릴지 명령한다고 생각하면 된다.

- aes(미학요소)함수 가장 중요하다. x축, y축 및 색 등의 미학요소를 설정한다.

- stat = "identity"는 y축을 해당 변수의 값 그대로 사용해서 그래프를 그린다.

- mapping 인자는 ggplot() 함수에 입력하든, geom_bar() 함수에 입력하든 상관없다.

사용하는 함수들이 많아질 경우 ggplot()에 입력하는 것이 편리하다.

 

 

 

 

 

3. geom_bar() 인자

1) 미학요소 - color/fill

- 미학요소에서 y인자를 따로 설정하지 않으면 y는 자동으로 x에 의한 count값이 된다.

- #1은 막대테두리색 미학요소를 설정하였다. class변수의 값에 따라 색이 자동 달라지는 것을 확인 할 수 있다.

- #2은 막대색 미학요소를 설정하였다. class변수의 값에 따라 색이 자동 달라지는 것을 확인 할 수 있다.

- #3은 막대색 미학요소를 설정하였다. class변수의 값에 따라 색이 자동 달라지는 것을 확인 할 수 있다.

다만 펙터만 분류를 받아들이기 때문에 펙터로 변환시켰다.

 

2) position 인자

- #1은 stack으로 막대모양을 설정하였다. fill로 색이 나누어진 막대가 한 개로 쌓여져 있는 것을 확인 할 수 있다.

- #2은 dodge로 막대모양을 설정하였다. fill로 색이 나누어진 막대가 두 개로 나누어져 있는 것을 확인 할 수 있다.

- #3은 identity로 막대모양을 설정하였다. dodge 상태에서 나누어진 두 개의 막대가 하나로 겹쳐진다.

alpha인자는 막대의 투명도이다.

- #4는 fill로 막대모양을 설정하였다. 비율을 뜻하며 1을 기준으로 fill로 나누어진 막대의 비율을 뜻한다.

 

* 하나의 막대 비율 표현

- 미학요소(aes)에서 설정한다.

- y인자를 ..prop..로 설정하면 class로 나누어지는 데이터 수의 비율이 된다.

- group=1은 전체로 1로 두고 부분비율을 구하겠다는 의미이다.

 

 

 

 

 

 

 

4. geom_bar()외 여러 함수와 함께 이쁘고 자세하게 그래프 그리기

 

=> 여기서 차례로 꾸며나가겠다

 

 

1) coord_catesian() 함수 사용

- 위의 그래프는 각 막대를 분별하기 어려워 보기 어렵다

- 미학요소 fill를 통하여 year변수 값에 의하여 막대 색이 달라지게 한다.

coord_cartesian()함수는 그래프 범위를 조절한다.

- ylim인자를 통하여 y값이 60~75 범위만 그래프로 그려지게 조절한다.

 

 

2) geom_label() 함수 사용

- 막대 위에 weight 값이 시각화되면 보기 편리할 것 같다.

geom_label() 함수를 사용하여 weight 값이 표시되게 한다.

- 미학요소 label을 통하여 그 값이 표현하게 설정하고 nudge_x, nudge_y값으로 그 위치를 조정한다.

- 1.1은 막대에서 조금 더 위로 올라간 위치이다. 0.9는 아래로 내려 갈 것이다.

 

 

 

3) labs() 함수 사용

- 이 그래프에 대한 설명을 보여주고 싶다.

- labs() 함수를 사용하면 된다.

title 인자는 큰 제목subtitle 인자는 작은 제목caption 인자는 그래프 아래에 설명, x, y 인자는 각각 x축 이름, y축 이름을 뜻한다.

- 이 밖에 color 인자를 사용하면 범례 제목도 바꿀 수 있다.

 

 

4) ggthemes패키지의 테마함수들 사용

ggtheme라는 패키지를 또 설치해야 한다.

- 이쁘게 디자인 된 테마들이 모여져 있는 패키지이다.

- 본인은 ggtheme패키지 안에 theme_wsj() 함수를 사용하여 이쁘게 그래프를 만들었다.

- theme_wsj() 패키지 외에 theme_minimal(), theme_light() 등등 많다.

보시는 분들 죄송해요~ 제가 영어가 짧아서 diat가 아니라 diet입니다.. ㅎㅎ

 

 

 

 

 

 

 

5. 응용

=> 본인이 공모전을 할 때 시각화 했던 자료 중 하나이다.

- 여러 함수들과 인자들을 입력함으로써 그래프를 꾸밀 수 있다.