대충벌레 블로그
article thumbnail
Published 2021. 1. 22. 18:00
R언어 공부 정리 [6] IT 기술/R
728x90
반응형

2021/01/21 - [IT/R] - R언어 공부 정리 [5]

2021/01/20 - [IT/R] - R언어 공부 정리 [4]

2021/01/19 - [IT/R] - R 언어 공부 정리 [3]

2021/01/18 - [IT/R] - R 언어 공부정리 [2]

2021/01/15 - [IT/R] - 분석 , 통계시 유용한 R 언어 설치와 기본 공부 정리

 

그래프 만들기

그래프는 산점도,막대 그래프 , 선그래프 , 상자그래프 등이 있습니다.

우선 산점도는 변수들간의 관계로 점으로 표시하고

막대그래프는 집단간의 차이를 막대로 표시합니다

선 그래프는 시간에 따라서 달라지는 데이터 즉 시계열 데이터 표현시 사용하고

상자그래프는 집단가의 분포차이를 나타낼때 씁니다

 

ggplot2 패키지를 주로 사용하는데 ggplo2는 시각화를 할때 아주 유용하다.

 

우선 배경을 설정해 준다

ggplot(data=mpg,aes(x=displ,y=hwy))
# data는 mpg데이터 x축은 displ y축은 hwy

 

선,막대,점등 그래프를 추가해줍니다.

ggplot(data=mpg,aes(x=displ,y=hwy))+ geom_point()
# 배경을 설정한 축에 geom_point() 산점도를 표시해줍니다

축범위 , 색 등 원하는조건에 맞는 그래프설정을 추가해줍니다.

ggplot(data=mpg,aes(x=displ,y=hwy))+ geom_point()+ xlim(3,6) +ylim(10,30)
x축은 3~6사이 y축은 10에서30 사이 

 

예제를 확인해보겠습니다.

mpg 데이터 cty와 hwy간의 어떤 관계가 있는지 확인하려고 합니다

x축은 cty , y축은 hwy로 된 산점도를 그리시오.

ggplot(data=mpg,aes(x=cty,y=hwy))+geom_point()
# mpg 데이터 x축은 cty y축은 hwy된 산점도 geom_point()

미국 지역별 인구통계 midwest를 이용해 전체 인구와 아시아 인구간의 어떤 관계가 있는지 알아보려고 합니다

x축은 poptotal y축은 popasian으로 된 산점도를 그리시오

그리고 전체인구는 5만명이하  , 아시아 인구는 1천명 이하로 표시 하시오 

midwest <- as.data.frame(ggplot2::midwest)
# 우선 ggplot2에 데이터프레임을 가져와 생성해줍니다.
ggplot(data=midwest,aes(x=poptotal,y=popasian)) + geom_point()
# midwest의 데이터를 x축은 poptotal y축은 popasian으로 설정후 산점도 geom_point() 추가
ggplot(data=midwest,aes(x=poptotal,y=popasian)) + geom_point()+xlim(0,50000)+ylim(0,5000)
# x축은 5만명 이하 y축은 5천명 이하

오른쪽) 축 범위 설정한 선점도 

막대 그래프  : geom_col()

드라이브별 평균 연비를 나타내는 그래프를 그리시오. 

드라이브별 x축  평균연비를 나타내는 해당집단의 요소 

mpg <- as.data.frame(ggplot2::mpg) # mpg데이터를 새로 가져옴
df_mpg <- mpg %>% group_by(drv) %>% summarise(drv_avg_hwy = mean(hwy))
#drv별 hwy평균연비를 분석함

시각화를 하기위해 ggplot 사용

# 시각화
ggplot(data=df_mpg,aes(x=drv,y=drv_avg_hwy)) + geom_col()
# df_mpg 데이터를 x축은 drv , y축은 drv_avg_hwy 를 막대 그래프로 표시함

시각화를 할때 내림차순,오름차순으로 정렬이 가능하다  reorder(x변수,y변수) y변수가 -이면 내림차순 + 이면 오름차순

y의 값에 따라서 x축이 재 정렬된다.

 

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

 

빈도 막대 그래프 : geom_bar() y축이 갯수를 나타낸다

mpg 데이터에서 drv 모델이 몇개씩 속해있는지 그래프로 출력하시오

ggplot(data=mpg,aes(x=drv)) +geom_bar()

예제 문제입니다.

어떤 회사의 suv 차량이 도시연비가 높은지 알아보려고 합니다.

suv차종을 대상으로 평균 cty가 가장 높은 회사 다섯곳의 막대 그래프를 그려보시오.

그리고 연비가 높은순으로 정렬하시오

mpg_5 <- mpg %>% # mpg 데이터에서
  filter(class=="suv") %>% # suv차종을 대상으로
  group_by(manufacturer) %>% # 회사별
  summarise(mean_cty = mean(cty)) %>% # 평균cty
  arrange(desc(mean_cty)) %>% # 내림차순으로 정렬
  head(5) # 상위 5개

위의 데이터를 기준으로 그래프를 그려보면

ggplot(data=mpg_5,aes(x=reorder(manufacturer,-mean_cty),y=mean_cty))+geom_col()

# mpg_5 데이터를 x축을 제조사 y축은 평균cty로 내림차순으로 막대그래프로 나타냄

자동차 중에서 어떤 class가 가장 많은지 알아보려고 합니다.

자동차 종류별 빈도를 표현하는 막대 그래프를 그려보시오 

ggplot(data=mpg,aes(x=class)) + geom_bar()

 

선 그래프 : geom_line() 시간에 따른 데이터를 표현시 사용

tibble [574 x 6] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
$ date    : Date[1:574], format: "1967-07-01" "1967-08-01" "1967-09-01" ... 날짜
$ pce     : num [1:574] 507 510 516 512 517 ...
$ pop     : num [1:574] 198712 198911 199113 199311 199498 ...           인구수
$ psavert : num [1:574] 12.6 12.6 11.9 12.9 12.8 11.8 11.7 12.3 11.7 12.3 ... 저축률
$ uempmed : num [1:574] 4.5 4.7 4.6 4.9 4.7 4.8 5.1 4.5 4.1 4.6 ...
$ unemploy: num [1:574] 2944 2945 2958 3143 3066 ...  실업자수

# date 날짜 , pop 인구수 , psavert 저축률 , unemploy 실업자수

economices 데이터를 사용해서 날짜에 따른 실업자수를 그래프로 그려보시오.

ggplot(data = economics,aes(x=date,y=unemploy)) + geom_line()

# economics 데이터를 x축은 date , y축은 실업자수 를 geom_line() 선그래프로 나타낸다

이번엔 날짜에 따른 저축율 변화를 그래프로 그려보시오.

ggplot(data = economics,aes(x=date,y=psavert)) + geom_line()
#economics 데이터를 x축은 날짜별 y축은 저축율 로 선그래프로 표시

 

상자그림 : geom_boxplot()

mpg 에서 drv별 hwy 의 분포 그래프를 그려보시오.

ggplot(data=mpg,aes(x=drv,y=hwy)) + geom_boxplot()

class가 compact, subcompact, suv인 자동차의 cty가 어떻게 다른지 비교해보려고 합니다

세 차종의 상자 그림을 만들어 보시오.

 

mpg_6 <- mpg %>% filter(class %in% c('compact','subcompact','suv'))
# mpg 데이터에서 class가 compact , subcompact , suv인 차종 행을 가져옴
ggplot(data=mpg_6,aes(x=class,y=cty)) + geom_boxplot()
# mpg_6 데이터에서 x축은 class y축은 cty 로 상자그림 출력

반응형

'IT 기술 > R' 카테고리의 다른 글

데이터 마이닝 R 4버전 이상 - KoNLP 설치  (0) 2021.01.26
R언어 공부정리 [7]  (0) 2021.01.25
R언어 공부 정리 [5]  (0) 2021.01.21
R언어 공부 정리 [4]  (2) 2021.01.20
R 언어 공부 정리 [3]  (1) 2021.01.19
profile

대충벌레 블로그

@대충벌레

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!