지난 포스팅에 이어서 이번 포스팅에서도 R ggmap 패키지를 이용하여 아시아 지도를 그려보겠습니다. 예제로는 중앙아시아 5개국을 몇 줄의 코드로 완성해보고요. 홍콩 지도를 이용해서 ggmap의 zoom 옵션, 지도 타입을 몇 가지 그려보겠습니다. 과제 혹은 보고서 작성 등에 지도 그림이 들어가는 경우가 종종 있으니 알아두면 여러모로 쓸모가 있을 것 같습니다. 예제에서 사용한 R Script는 포스팅 하단에 업로드해 두었으니 필요한 경우 내려받아 사용하면 되겠습니다. 단, 지난 몇 개의 포스팅에서도 말씀드렸습니다만, API 키를 사전에 부여받아야만 예제와 같은 지도가 구현됩니다.
ggmap 패키지 호출 및 구글맵 API 키 등록
분석에 필요한 ggmap 패키지를 호출합니다. 설치가 안되어 있다면, install을 먼저 해야 합니다.
library(ggmap)
register_google(key='부여받은 키를 입력합니다')
지도에 출력할 중앙아시아 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")
홍콩 지도 출력
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
홍콩 위성 사진 출력
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를 아래 함께 업로드해두겠습니다. 각자 실습해보기 바랍니다.
'교육' 카테고리의 다른 글
2022 어린이 아기 선크림 아마존 추천 │미국 피부과 의사 추천 상품 (0) | 2022.06.20 |
---|---|
코딩하지 않고 무료로 일본어 워드 클라우드 만들기 │lab.fanbright.jp (0) | 2022.05.30 |
경기도 입시 학원 분포 │R ggmap 활용 (0) | 2022.05.27 |
R ggmap 활용을 위한 구글맵 API 키 발급 방법 (0) | 2022.05.26 |
2022 추천 네일 Nail 인스타그램 일본 기업 계정 5선 │insta-lab (0) | 2022.05.25 |