티스토리 뷰
위 글에 이어 ggmap을 이용해 지도위에 데이터를 시각화하는 내용을 다룹니다.
API 키 발급
먼저 ggmap 사용을 위해 API키를 발급 받아야합니다. 이를 위해 구글계정과 크레딧을 제공받을 카드가 필요합니다.
구글에 로그인 후 GCP(Google Cloud Platform)에 접속 합니다.
무료로 시작을 선택합니다.
처음 가입시 제공되는 크레딧을 이용해 무료로 서비스를 이용할 수 있습니다.
절차에 따라 가입합니다. 저는 학교프로젝트/과제 목적을 선택하고 가입하였습니다.
가입이 완료된 화면 입니다.
이제 API키를 발급 받을수 있습니다.
왼쪽 상단바에서 [My First Project]-[새프로젝트] 를 선택해 새로운 프로젝트를 생성합니다.
프로젝트의 이름을 임의로 작성하고 만들기를 선택하면 새로운 프로젝트가 만들어 집니다.
이후 홈 화면 알림바에서 해당 프로젝트를 선택합니다.
왼쪽 상단의 프로젝트 명이 바뀐것을 확인할 수 있습니다.
이제 지도를 사용하기 위한 라이브러리를 다운받겠습니다.
사이드바에서 [API 및 서비스]-[라이브러리]를 선택합니다.
라이브러리 페이지 사이드바에서 [카테고리] - [지도]를 선택합니다.
아래 3개의 라이브러리를 설치합니다.
그리고 다시 API 및 서비스 메뉴에서 [사용자 인증 정보] - [사용자 인증 정보 만들기] - [API 키]를 선택합니다.
(위의 Google Maps에서 [사용자 인증정보]를 선택해 진행하셔도 무관합니다.)
그럼 API키가 생성됩니다. 이제 이 키를 이용해 ggmap을 R에서 사용할 수 있습니다.
ggmap 설치 및 사용하기
ggmap을 설치하는 데에는 두가지 방법이 있습니다.
버전에 따라 사용 방법이 달라지기 때문에 설치가 되는 방법으로 사용하시면 됩니다.
# 첫번째 방법
if(!requireNamespace("devtools")) install.packages("devtools")
devtools::install_github("dkahle/ggmap")
# 두번째 방법
install.packages("ggmap")
그리고 library 함수를 통해 ggmap을 적재하고 API키를 이용해 인증을 마치면 됩니다.
잘 인증되었다면 아래 코드를 실행 시켰을때 서울시의 로드맵이 나타납니다.
library(ggmap)
register_google(key= 'Your API Key')
# 서울시 로드맵
map<-get_map(location="seoul", zoom=14, maptype = "roadmap", source = "google")
g<-ggmap(map)
print(g)
+ 서울시 위성 맵 그리기 코드
# 서울시 위성 맵 그리기
map<-get_map(location="seoul", zoom=14, maptype = "satellite", source = "google")
g<-ggmap(map)
print(g)
(ggmap maptype을 검색하시면 google에서 제공하는 여러 지도 타입을 확인할 수 있습니다.)
+ 랜드마크 설정 예제
ggmap을 이용해 지도를 시각화 하고 geom_point 함수로
geom_point 함수로 lbls에 저장된 좌표에 크기 5의 오렌지색 점을 먼저 찍고,
그 위에 크기 3의 빨간색 점을 찍습니다. 그리고 geom_text 함수로 랜드마크의 레이블을 작성합니다.
# 랜드마크 설정
landmarks<-c("nseoul tower, seoul", "city hall, seoul")
lbls<- cbind(geocode(landmarks), text=landmarks)
map<-get_map(location="seoul", zoom=14, maptype = "roadmap", source = "google")
g<-ggmap(map) +
geom_point(data = lbls, aes(x=lon, y=lat), size=5, colour="orange") +
geom_point(data = lbls, aes(x=lon, y=lat), size=3, colour="red") +
geom_text(data = lbls, aes(x=lon, y=lat, label=text), size=4, colour="black", hjust=0, vjust=0.5)
print(g)
서울시 WIFI 공공데이터 시각화
ggmap과 ggplot을 이용해 아래 데이터를 시각화 합니다.
폴더를 생성하고 해당 파일을 저장합니다.
저는 C드라이브에 [Rdata] 라는 폴더를 생성해 사용하였습니다.
먼저 저장한 데이터를 RStudio로 적재해야합니다.
setwd( ) 함수를 통해 해당 폴더로 작업디렉토리를 바꾼뒤 csv 파일을 불러옵니다.
# 실습데이터 적재
setwd("c:/Rdata")
getwd() # 작업디렉토리 확인
wifi<-read.csv("WIFI.csv", header = TRUE)
head(wifi) # 불러온 데이터 확인
이제 여러가지 시각화를 진행해 볼 수 있습니다.
# 실습데이터 적재
setwd("c:/Rdata")
getwd()
wifi<-read.csv("WIFI.csv", header = TRUE)
head(wifi)
# 지도위에 점으로 표시
bmap<-ggmap(get_googlemap(center=c("seoul"), zoom=11, maptype="roadmap")) +
geom_point(data=wifi, aes(x=LON,y=LAT, colour = INSTL_DIV, size=2))
print(bmap)
# 분할하여 표시
bmap + facet_wrap(~INSTL_DIV)
# 원그래프
ggplot(wifi, aes(x = factor(1))) +
geom_bar(aes(fill = INSTL_DIV), width = 1) +
coord_polar(theta = "y") + xlab("") + ylab("")
# 카테고리별 시각화
ggplot(wifi, aes(CATEGORY)) +
geom_bar(aes(fill = INSTL_DIV))
# 통신사별 시각화
ggplot(wifi, aes(INSTL_DIV)) +
geom_bar(aes(fill = CATEGORY))
감사합니다.
2022년 AI분석을 위한 R통계교육의 수업내용을 정리한 글입니다.
공부한 내용을 복습/기록하기 위해 작성한 글이므로 내용에 오류가 있을 수 있습니다.
'R' 카테고리의 다른 글
[R] 데이터 시각화 - Text mining(Tm)과 Wordcloud (0) | 2022.07.06 |
---|---|
[R] 데이터 시각화 - googleVis (0) | 2022.07.06 |
[R] 데이터 시각화 - ggplot2 (0) | 2022.07.04 |
[R] 데이터 시각화 - 그래프 활용과 Plot (0) | 2022.06.30 |
[R] 고급 통계 (0) | 2022.06.30 |