인트로
구글 계정만 있다면 Google Cloud Platform 에서 지원하는 API 키를 활용해
실시간 구글지도 서버와 R을 연결하여 지도 관련 데이터 시각화를 구축할 수 있다.
지도는 날씨, 부동산, 지역별 분포 등 다양한 데이터를 의미있게 표현할 수 있는 좋은 바탕이라고 생각한다.
함수
- register_google ( key = ' API 키 ' ) : 발급받은 API 키 등록
- get_googlemap ( center = ' 위도/경도 or 위치 ' ) , maptype = ' 지도 유형 ' ) : 변수에 지도 데이터 할당
- maptype 의 기본값은 terrain(지형) 이고, roadmap, satellite, hybrid (위성 + 로드맵) 이 있다.
- Zoom 옵션을 통해 지도 확대가 가능하다.
- ggmap : 지도 데이터를 지도로 시각화
- geocode : 위치를 포함하는 문자열을 위도/경도 값을 가진 데이터 프레임으로 반환.
코드
library('ggplot2')
library('ggmap')
# 등록
register_google(key='AIzaSyBCMqZKnLmrZ3kT4kL426oPX3xjHpn4ECM')
# 시각화1. 서울 지도 불러오기
seoul <- get_googlemap('seoul',maptype = 'roadmap')
ggmap(seoul)
# 시각화2. 용산역 지도 불러오고 나서 ggplot 그래프 얹어보기
# 추가 개념
# enc2utf8 : 문자열을 UTF-8로 인코딩한다. (윈도우는 기본 인코딩이 EUC-KR 임)
# as.numeric : 데이터 유형을 숫자형 벡터로 변환한다.
ysy_dataframe <- enc2utf8('용산역') %>% geocode()
ysy_coord <- as.numeric(ysy_dataframe)
get_googlemap(center=ysy_coord,maptype='roadmap',zoom=17) %>% ggmap() +
geom_point(data=ysy_dataframe,aes(x=lon,y=lat),size=6,color='red') +
annotate('segment', x=126.964, xend=ysy_dataframe$lon, y=37.531, yend=ysy_dataframe$lat, color='black', arrow=arrow()) +
annotate('text', x=126.964, y=37.53118, label='yongsan station')
# geocode 함수로 전환한 객체는 '데이터프레임' 이다!!
결과
아직은 지도를 불러오는 정도지만, 이전 개념들과 결합하면 꽤나 완성도 높은 시각화 자료가 만들어진다.
'Coding & Data Analysis > R' 카테고리의 다른 글
[R] 시각화를 위한 데이터 구조 변경 및 추가 개념 (0) | 2024.08.25 |
---|---|
[R] Excel 전처리 & 빈도분석 시각화 개념들 (0) | 2024.08.25 |
[R] 절편과 기울기 구하기 : 회귀 분석 (0) | 2024.08.20 |
[R] 6-2. 그래프에 객체 추가하기 (0) | 2024.08.20 |
[R] 6 -1. ggplot2 패키지 (데이터 시각화) (0) | 2024.08.18 |