R

R - 지도 시각화

Data_Minsu 2021. 6. 3. 15:50

### 지도 시각화하기 
install.packages("ggiraphExtra") # 지도 관련 패키지 ggChorpleth 포함
install.packages("mapproj") # ggiraphExtra가 사용하는 패키지 
library(ggiraphExtra) 

# 미국 주별 강력 범죄율  
str(USArrests)
head(USArrests)

# tibble 패키지가 rownames_to_column 포함(행의 이름을 state라는 컬럼으로 추가)
library(tibble)
crime <- rownames_to_column(USArrests, var='state')
crime

# tolower() 소문자로 변환 / 지도 데이터의 정보 일치시키기 위해서서
crime$state <- tolower(crime$state)

# map_data : state  데이터를 데이터 프레임 형태로 리턴 
library(ggplot2)
states_map <- map_data("state")

# 지도 관련 함수 
ggChoropleth(data = crime, # 지도에 표현할 데이터
             aes(fill=Murder, # 색깔로 표현할 변수  
                 map_id = state), # 지역 기준 변수 
             map = states_map, # 지도 데이터 
             interactive = T) # 인터랙티브 마우스 커서에 따른 인터렉티브 효과 추가

### 한국 지도 정보 출력하기
install.packages("stringi")
install.packages("devtools")
devtools::install_github("cardiomoon/kormaps2014")

#korpop1 데이터 불러오기
library(kormaps2014)
korpop1
str(korpop1) # 깨진 한글 때문에 안됨 
str(changeCode(korpop1)) #changeCode() kormaps2014 패키지에서 제공되는 데이터 인코딩 변경 

ds <- korpop1
str(changeCode(ds))
install.packages("dplyr")
library(dplyr)
ds <- rename(ds, pop = 총인구_명, name = 행정구역별_읍면동)
str(changeCode(ds))

 

library(ggiraphExtra)
library(ggplot2)


ds$name <- iconv(ds$name,"UTF-8","CP949")

ggChoropleth(data = ds,
             aes(fill=pop,
                 map_id = code,
                 tooltip = name),
             map = kormap1,
             interactive = T)

# 비트 : 0, 1 저장할 수 있는 공간
# 8비트 : 1바이트 : 256가지 표현 가능
# 공통 코드 : 01000001 : 'A' => ASCII(아스키), 각 국가별로 코드 
# 공통 코드 : 2바이트 : UTF-8 
# iconv(ds$name,"UTF-8","CP949")

### 대한민국 시도별 결핵 환자 수를 지도로 표시하기
library(kormaps2014) # 한국 지도 표기를 위한 데이터 
library(ggiraphExtra) # 지도 작성
library(ggplot2) 

ds <- tbc
ds$name <- iconv(ds$name, "UTF-8", "CP949")
 

# NewPts 컬럼 : 결핵 환자 수
ggChoropleth(data = ds,
             aes(fill=NewPts,  
                 map_id = code,
                 tooltip = name),  
             map = kormap1,  
             interactive = T) 

# 인터랙티브 그래프 구현하기
install.packages("plotly")
library(plotly)
library(ggplot2)

mpg
p <- ggplot(data=mpg,aes(x=displ,y=hwy,col=drv)) + geom_point()
ggplotly(p) #그래프를 인터렉티브 형태로 변경 

 

* 커서를 갖다대면, 정보가 뜬다.