코딩 연습장/R

Hadoop/Hive 이용한 부동산 거래량, 지수 비교 분석 프로젝트 - 2 (R 이용한 지도시각화)

Do아 2021. 7. 1. 12:08
728x90

2021/06/07(월)

 

 

 

 

 

 

Hadoop/Hive 분석 프로젝트

1) 데이터 수집 참고

https://cordingdoah.tistory.com/122

 

Hadoop/Hive 이용한 부동산 거래량, 지수 비교 분석 프로젝트 - 1 (데이터 수집)

2021/06/07(월) 부동산 가격이 치솟는 가운데 전에 비해 얼마나 부동산의 거래량과 가격이 올랐는지 확인하고 싶다는 생각을 했다 통계청에 있는 데이터를 가지고 Hadoop/Hive 비정형 데이터 처리를

cordingdoah.tistory.com

 

 

 

 

 

이제 데이터를 수집하고 Hive안에 넣어놨으니 원하는 데이터를 뽑아 csv파일로 생성하고

지도 시각화 과정을 해보도록 하겠다.

먼저 서울의 최고 거래량 연월을 출력하여 csv파일을 생성해 보도록 하겠다

 

<서울의 거래량 내림차순으로 출력>

select monthofyear, city, avg(coh) comax
from property              
where city='Seoul' and
gu='total'          
group by monthofyear, city
order by comax desc;

 

 

 

--> 결과화면

서울에서 거래량이 최고로 높았던 연월은 2006년11월
서울의 거래량이 최저였던 연월은 2012년 01월

 

 

 

 

출력한 데이터로 생성한 표

 

 

 

 

서울 최고 거래량 연월 2006년 11월의 대한 지역별 거래량 출력

select monthofyear, city, gu, coh
from property
where city='Seoul' and
monthofyear=200611;

 

 

 

--> 결과화면

 

 

 

2006년 11월 서울 지역별 거래량 파일 생성 

 

 

 

 

<R을 이용한 지도 시각화>

서울최고거래량_200611.csv

 

 

각 서울 지역의 id값을 삽입하여 저장해주기

id값 삽입된 서울최고거래량_200611.csv

 

 

 

 

 

지도 시각화를 하기 위한 R코드

setwd("C:/Rdata")
install.packages("ggmap")
install.packages("ggplot2")
install.packages("raster")
install.packages("rgeos")
install.packages("maptools")
install.packages("rgdal")
library(ggmap)
library(ggplot2)
library(raster)
library(rgeos)
library(maptools)
library(rgdal)

register_google(key="구글 API키")

p<-read.csv("서울최고거래량_200611.csv", header=TRUE)
p$rate<-p$coh
View(p)

map<-shapefile("C:/Rdata/SIG_201405/TL_SCCO_SIG.shp")
map<-spTransform(map, CRSobj = CRS('+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs'))
new_map <- fortify(map, region = 'SIG_CD')
View(new_map)

new_map$id <- as.numeric(new_map$id)
Jeollanamdo_map <- new_map[new_map$id <= 11740,]
p_merge <- merge(Jeollanamdo_map, p, by='id')

longlat<-p_merge[-which(duplicated(p_merge$id)),]
longlat

qTheme<-
  theme(
    axis.title = element_blank(),
    axis.text = element_blank(),
    axis.ticks = element_blank(),
    plot.title = element_text(hjust = 0.5,face = 'bold'),
    legend.direction = 'horizontal',
    legend.position = c(0.8, 0.05),
    legend.text = element_text(size = 8, face = 'bold'),
    legend.title = element_text(size = 10,face = 'bold')
  )

q<-ggplot() + geom_polygon(data = p_merge, aes(x=long,y=lat,group=group, fill = rate))+labs(fill="호수")
q+scale_fill_gradient(low = 'white',high = '#00BFFF')+qTheme+geom_text(data = longlat,
                                                                       aes(x=long,y=lat),
                                                                       size=3.5,
                                                                       label=longlat$gu)+
  ggtitle(label = '서울최고거래량')+
  geom_text(data = longlat, 
            aes(x=long,y=lat-0.03),
            size=3.5,
            label=longlat$coh)

 

1. 서울최고거래량_200611.csv를 열어서 변수에 저장하고 맵을 생성하여 id의 최대값을 넣어줌

2. text를 맵에 출력 

 

 

 

--> 결과화면

728x90