이번 글에서는 R에서 ggplot2 패키지를 사용하여 데이터 시각화
밑글을 참고하여 ggplot2나 tidyverse를 설치하시면 됩니다 :)
ggplot2 라이브러리 불러오기
제일 먼저 tidyverse 라이브러리를 불러옵니다.
* tidyverse 라이브러리에는 ggplot2가 포함되어 있어 ggplot2를 따로 불러올 필요는 없습니다.
library(tidyverse)
데이터셋 - 내장된 데이터셋 mpg
이 글에서는 ggplot2 패키지에 포함되어 있는 데이터셋인 mpg를 사용해서 산포도 (scatter plot)을 그려보도록 하겠습니다.
먼저 mpg 데이터셋입니다.
이 데이터셋은 38개의 차 모델의 연비 데이터를 포함하고 있습니다.
ggplot()
ggplot2 패키지를 사용해서 그래프를 그릴 때는 ggplot() 함수로 먼저 객체를 초기화해줘야 한다. 그리고 원하는 구성을 +를 이용해 추가해줄 수 있다.
ggplot() + 차트 구성
예)
ggplot(data) + geom_bar() 막대차트
ggplot(data) + geom_abline() 라인차트
여기서 ggplot()을 사용하여 차트를 초기화시키는 방법이 여러 가지 있다.
- ggplot(): 먼저 차트/객체를 생성하고 다양한 레이어를 추가할 때 e.g. 다양한 데이터셋을 사용할 때 유용
- ggplot(df): 데이터셋을 지정해놓은 객채. 동일한 데이터로 여러 가지 스타일의 차트를 만들 때 사용하기 유용
- ggplot(df, aes(x, y, 등등): 모든 레이어가 동일한 데이터와 동일한 aes() 설정을 사용할 때 유용
mpg 데이터셋을 사용하여 만든 막대차트. 세 줄 다 동일한 막대차트를 만든다.
ggplot() + geom_bar(mpg, aes(class)) ggplot(mpg) + geom_bar(aes(class)) ggplot(mpg, aes(class)) + geom_bar()
산포도 geom_point()
산포도 scatter plot은 두 변수의 관계를 살펴볼 수 있는 그래프이다.
ggplot2에서 산포도를 그리는 기본 문법은 아래와 같다.
ggplot(data=데이터셋) + geom_point(aes(x=x축변수, y=y축변수))
x축에 displ 배기량과 y축에 hwy 고속도로 연비의 관계를 살펴보기 위해 산포도를 만들어 보겠습니다.
ggplot(data=mpg)+geom_point(mapping=aes(x=displ, y=hwy)) ggplot(mpg)+geom_point(aes(displ, hwy)) # data=, mapping= 생략 가능
color= ""를 통해서 색깔을 바꿀 수 있습니다.
여기에 RGB 문자열을 넣어도 되고 R에서 제공하는 색깔 이름을 넣어줘도 됩니다.
ggplot(data=mpg)+geom_point(mapping=aes(x=displ, y=hwy), color="magenta")
3번째 변수 (예를 들면 차 종류 class) 별로 색깔을 바꾸고 싶다면 'color=변수 이름'을 추가해주면 됩니다.
ggplot(data=mpg)+geom_point(mapping=aes(x=displ, y=hwy, color=class))
만약에 'alpha=변수 이름'을 넣어준다면 변수의 레벨에 따라 포인트 투명도를 조절해 구별 가능합니다.
ggplot(data=mpg)+geom_point(mapping=aes(x=displ, y=hwy, alpha=class), color="plum4")
다만 밑과 같은 경고 메시지가 뜰 수 있습니다.
Warning message:
Using alpha for a discrete variable is not advised.
차 종류는 불연속 변수 (discrete variable)이라 그러데이션 별로 차 종류를 나누는 게 그래프를 이해하는데 이해가 안 되기 때문입니다.
예를 들어 연속형 변수인 cty를 사용해서 차트를 만들면 경고 메시지가 안 뜹니다.
작은 숫자 10을 연하게 35를 제일 진하게 cty 변수를 나누는 게 차트를 읽는데 의미가 있기 때문입니다.
ggplot(data=mpg)+geom_point(mapping=aes(x=displ, y=hwy, alpha=cty), color="plum4")
'ᐧ༚̮ᐧ Data Science | AI > R' 카테고리의 다른 글
[R] 데이터프레임 열 이름/변수명 바꾸기 (0) | 2022.11.25 |
---|---|
[R/R스튜디오] 데이터 불러오기 (9) | 2021.06.11 |
[데이터 분석 with R] R 스튜디오에서 패키지 설치하기 (feat. 자주 쓰이는 패키지 추천) (0) | 2021.05.30 |
R/R 스튜디오 다운로드 및 설치하기 (0) | 2021.05.25 |