본문 바로가기

교육

아시아 지도 출력 │R ggmap 활용 │중앙 아시아 │홍콩

지난 포스팅에 이어서 이번 포스팅에서도 R ggmap 패키지를 이용하여 아시아 지도를 그려보겠습니다. 예제로는 중앙아시아 5개국을 몇 줄의 코드로 완성해보고요. 홍콩 지도를 이용해서 ggmap의 zoom 옵션, 지도 타입을 몇 가지 그려보겠습니다. 과제 혹은 보고서 작성 등에 지도 그림이 들어가는 경우가 종종 있으니 알아두면 여러모로 쓸모가 있을 것 같습니다. 예제에서 사용한 R Script는 포스팅 하단에 업로드해 두었으니 필요한 경우 내려받아 사용하면 되겠습니다. 단, 지난 몇 개의 포스팅에서도 말씀드렸습니다만, API 키를 사전에  부여받아야만 예제와 같은 지도가 구현됩니다. 

 

ggmap 패키지 호출 및 구글맵 API 키 등록

분석에 필요한 ggmap 패키지를 호출합니다. 설치가 안되어 있다면, install을 먼저 해야 합니다. 

library(ggmap)
register_google(key='부여받은 키를 입력합니다')

 

R ggmap 활용을 위한 구글맵 API 키 발급 방법

세계 지도 혹은 개별 지역 정보를 시각화하여 보여줄 때, ggmap의 활용 빈도가 매우 높습니다. ggmap 패키지를 이용하여 이러한 공간 정보를 구현하기 위해서는 구글맵 플랫폼에서 API key를 발급받

e-datanews.tistory.com

 

도에 출력할 중앙아시아 5개 국가 지정

지도에 출력할 중앙 아시아 5개 국가명을 입력하고, c_asia 개체에 저장합니다.

c_asia <- map_data("world", region = c("Uzbekistan","Kazakhstan","Kyrgyzstan","Tajikistan", "Turkmenistan"))

 

map_data (+ggplot2 + geom_polygon) 활용하여 국경 구분 및 국가별 색깔 입력 

국가별로 색깔을 입력하여 구분하고, 회색으로 국경을 각각 구분합니다. 국가별 색상은 워드클라우드 구현 때 사용했던 팔렛트명 입력하면 됩니다. 그리고 ggplot2 옵션 값을 이용하여 범례의 위치 등을 기재하고, 출력하면 아래 그림과 같은 결과를 구현할 수 있습니다. 

ca_gg <- ggplot(c_asia, aes(x=long, y=lat, group=group,fill=region)) + 
      geom_polygon(colour="gray") + scale_fill_brewer(palette="Set3")

ca_gg + theme(legend.position="bottom", legend.box = "horizontal") 

중앙아시아 5개 국가 지도 출력
중앙아시아 5개 국가 지도 출력

 

홍콩 지도 출력

get_map의 옵션값 중 zoom과 maptype을 조정해 보겠습니다. 아래 코딩된 값을 기본으로 이렇게 저렇게 조정해 보면 됩니다.

hk01 = get_map(location = c(lon = 114.3, lat = 22.3), zoom = 9, maptype = 'roadmap', source = "google")
hk01 = ggmap(hk01)
hk01 

홍콩 로드맵 지도
홍콩 로드맵 지도

 

지도 ZOOM 조정

zoom 값이 커지면 지도가 확대되어 그림처럼 홍콩 구룡반도 쪽이 확대되어 나타나고 있음을 확인할 수 있습니다. 

hk02 = get_map(location = c(lon = 114.3, lat = 22.9),zoom = 10, maptype = 'roadmap', source = "google")
hk02 = ggmap(hk02)
hk02

지도 zoom 옵션 값 조정
지도 zoom 옵션 값 조정

 

홍콩 위성 사진 출력

maptype을 satellite로 입력하면, 아래처럼 지도가 출력됩니다. 

hk03 = get_map(location = c(lon = 114.3, lat = 22.9), zoom = 9, maptype = "satellite", source = "google")
hk03 = ggmap(hk03)
hk03

홍콩 위성 사진
홍콩 위성 사진

 

홍콩 지역명 동시 출력

maptype을 hybrid로 입력하면, 위성사진에 각 지역명이 함께 출력되어 구현됨을 아래 그림처럼 확인할 수 있습니다. 

hkmap = get_map(location = "hongkong", zoom = 10, maptype = "hybrid" , source = "google")
hkmap = ggmap(hkmap)
hkmap

홍콩 지역명 동시 출력
홍콩 지역명 동시 출력

 

실습파일 내려받기

위 예제의 지도를 구현하는 R Script를 아래 함께 업로드해두겠습니다. 각자 실습해보기 바랍니다. 

asia map B.R
0.00MB