R데이터배우기 - [06] 그래프 만들기
1. R 그래프
- 데이터의 원자료나 통계표는 수많은 숫자와 문자로 구성되어 있어서 의미 파악이 어렵다.
- 데이터를 그래프로 표현하면 추세와 경향성을 알기 쉽다.
- ggplot2는 그래프를 만들때 가장 많이 사용하는 패키지 이다.
- 산점도, 막대그래프,선그래프, 상자 그래프를 알아본다.
※ ggplot2 레이어 구조
ggplot2는 레이어 구조로 되어있다.
배경을 만들고,
그위에 그래프 형태를 그리고,
마지막으로 축 범위위, 색, 표식 등을 설정한다.
ggplot(data = mpg, aes(x = displ, y = hwy)) + geom_point() + xlim(3, 6)
데이터 축 그래프종류 세부설명
(1) 산점도 그래프
- 데이터를 x측과 y측에 점으로 표현한 그래프를 산점도(Scater Plot) 라 한다.
- 산점도는 나이와 소득처럼 연속 값으로 된 두 변수의 관계를 표현할 때 사용한다.
- mpg데이터의 displ(배기량)과 hwy(고속도로 연비)로 산점도 그래프를 그린다.
1) 배경 설정하기
![](http://lectureblue.pe.kr/ckstorage/images/special_subject/R/06/02.jpg)
2) 그래프 추가하기
- dplyr 패키지는 함수들을 %>% 기호로 연결하지만 ggplot2 패키지 함수들은 + 기호로
연결한다.
- 표시된 점들은 각각의 관측치(행)을 의미한다. 각 점이 하나의 자동차 모델을 의미한다.
- 그래프의 내용은 전반적으로 배기량이 큰 자동차일수록 고속도로 연비가 낮은 경향이 있다.
# 배경에 산점도 추가
ggplot(data = mpg, aes(x = displ, y = hwy)) + geom_point()
3) 축 범위를 조정하는 설정 추가하기
- 축의 범위는 xlim()과 ylim() 를 이용해서 지정한다.
4) 그래프 이미지 파일로 저장하기
- 오른쪽 아래 이미지가 보여지는 창 메뉴에서 [Export] -> 서브세개의 메뉴가 나온다
이미지로저장, PDF로저장, 메모리로 저장 등의 메뉴를 사용할 수 있다.
(2) 막대그래프
- 막대그래프(Bar Chart)는 데이터의 크기를 막대의 길이로 표현한 그래프입니다.
성별 소득 차이처럼 집단 간 차이를 표현할 때 주로 사용한다.
- mpg데이터의 drv(구동방식)별 평균 hwy(고속도로 연비) 막대 그래프를 만든다.
1)집단별 평균표 만들기
- dplyr패키지를 이용하여 구동방식별 고속도로 연비로 구성 데이터프레임을 생성한다.
#install.packages("dplyr")
2)그래프 생성하기
ggplot(data = df_mpg, aes(x = drv, y = mean_hwy)) + geom_col()
3)크기순으로 정렬하기
- reorder()를 사용하면 막대를 값의 크기 순으로 정렬할 수 있다.
- 정렬기준 변수 앞 - 기호를 붙이면 내림차순으로 정렬합니다.
ggplot(data = df_mpg, aes(x = reorder(drv, -mean_hwy), y = mean_hwy)) + geom_col()
4)빈도 막대 그래프 만들기
- 빈도 막대 그래프는 값의 개수(빈도)로 막대의 길이를 표현한 그래프이다.
- y축 없이 x축만 지정하고, geom_col() 대신 geom_bar()를 사용한다.
- drv항목별 빈도 막대 그래프 그리기
ggplot(data = mpg, aes(x = drv)) + geom_bar()
- x축에 연속적인 데이터를 지정하면 값의 분포를 파악할 수 있다.
- hwy변수의 분포를 나타낸 빈도 막대 그래프 그리기
ggplot(data = mpg, aes(x = hwy)) + geom_bar()
(3) 선그래프
- 선그래프(Line Chart)는 시간에 따라 달라지는 데이터를 표현할 때 사용한다.
- 환율, 주가지수등 경제지표등을 표현한다.
- 일정시간 간격의 데이터를 시계열 데이터(Time Series Data)라 하고
시계열 데이타를 선으로 표현한 그래프를 시계열 그래프라 한다.
- ggplot2패키지의 economics데이터로 시계열 그래프 그리기
- economics데이터는 미국의 경제 지표들을 월별로 나타낸 데이터이다.
- x 축 시간을 의미하는 date, y축 실업자 수 unemploy
- 선그래프 표현을 위해 geom_line()함수를 추가한다.
economics2 <-ggplot2::economics
※ 데이터 분석 설명
- 실업자 수가 약 5년주기로 등락을 반복하고, 2005년 이후 급격하게 증가 했다가
2010년 이후 다시 감소하고 있는 추세라는 것을 알 수 있다.
(4) 상자그림
- 상자그림(Box plot)은 데이터 분포(퍼져있는 형태)를 직사각형 상자 모양으로 표현한 그래프이다.
- 데이터의 특성을 좀 더 자세히 이해할 수 있다.
- mpg데이터의 drv(구동방식)별 hwy(고속도로 연비)를 상자그림으로 그린다.
- x축 drv, y축 hwy 지정후 상자 그림 표현을 위해 geom_boxplot()를 추가한다.
ggplot(data = mpg, aes(x = drv, y = hwy)) + geom_boxplot()
※ 데이터 분석 설명
- 4륜구동(4)
17~22사이에 대부분의 자동차가 모여있다.
중앙값이 상자 밑면에 가까운것을 보면 낮은 값쪽으로 치우친 형태의 분포이다.
- 전륜구동(f)
26~29 사이의 좁은 범위에 자동차가 모여 있는 뾰족한 형태의 분포라는 것을 알 수 있다.
수염의 위, 아래에 점표식이 있는 것을 보면 연비가 극단적으로 높거나 낮은 자동차들이
존재 한다는 것을 알 수 있다.
- 후륜구동(r)
17~24사이의 넓은 범위에 자동차가 분포하고 있다는 것을 알 수있다.
수염이 짧고 극단치가 없는 것을 보면 대부분의 자동차가 사분위 범위에 해당한다는 것을
알수있다.
※상자그림의 값과 설명
'공부 > IT-R프로그래밍' 카테고리의 다른 글
R프로그래밍 강좌 - [08] [실습]텍스트 마이닝 (1) | 2017.10.25 |
---|---|
R프로그래밍 강좌 - [07] [실습] 데이터 분석 - 한국복지패널 데이터 (0) | 2017.10.24 |
R데이터배우기 - [05] 데이터 가공(데이터 전처리),데이터 정제 (0) | 2017.10.24 |
R데이터배우기 - [04] 데이터 분석을 위한 데이터파악, 데이터 수정 (0) | 2017.10.23 |
R데이터배우기 - [03] 데이터파일 읽기, 데이터프레임 사용하기 (0) | 2017.10.23 |
댓글