티스토리 뷰

R에서 google map을 이용하여

신규 커피집을 표시할 수 있다.

먼저 라이브러리 ggmap 을 로드하고, register_google() 함수를 이용하여 발급받은 API를 등록한다. 구글에서 검색해서 개발자로 등록하고, 신용카드 정보 넣으면 API 키를 준다. 

library('ggmap')
register_google(key='구글API')

 

공공데이터 data.go.kr 사이트에 가서 소상공인진흥공단에서 제공한 파일 중 하나를 다운 받았다.

https://www.data.go.kr/dataset/15012005/fileData.do

 

공공데이터포털

국가에서 보유하고 있는 다양한 데이터를『공공데이터의 제공 및 이용 활성화에 관한 법률(제11956호)』에 따라 개방하여 국민들이 보다 쉽고 용이하게 공유•활용할 수 있도록 공공데이터(Dataset)와 Open API로 제공하는 사이트입니다.

www.data.go.kr

그 중에서 "커피"라고 표시되어 있는 관측치만 남겼다. 그리고 geocode() 함수를 이용하여 주소에 해당하는 위도/경도를 가져왔다(구글에 주소를 넣어주면 구글에서 위/경도를 준다).

market <- readxl::read_xlsx("markets.xlsx", 
                            col_names = TRUE)

library(stringr)

coffee <- market[str_detect(market$INDS_MCLS_NM,"커피"),]
coffee <- coffee[complete.cases(coffee),]

geo_coffee <- geocode(coffee$LNO_ADR)

서울 지도를 하나 불러오고

map_seoul <- get_map(location = "seoul", 
                     zoom=11,
                     source = "google",
                     maptype = "roadmap",
                     color = "bw")

 

거기에다가 앞에서 구한 커피 신규 개설업장을 표시하되, 밀도함수를 이용하여 표현하였다.

ggmap(map_seoul) +
  stat_density_2d(data = geo_coffee, 
                  aes(x = lon, y = lat,
                      fill  =..level..,
                      alpha =..level.. 
                  ),
                  geom = "polygon",
                  size = 2,
                  bins = 20) +
  scale_fill_gradient(low='white', high = 'blue', guide=F) +
  scale_alpha(range=c(0.02, 0.7), guide = F) +
  theme_void() +
  theme(legend.position = "none")

 

그러면 아래와 같은 그림을 얻을 수 있다. 2017년 여름 자료이던데, 강남과 홍대에 집중적으로 커피집이 열렸음을 알 수 있다. 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함