티스토리 뷰

R

[R] 데이터 시각화 - ggmap

rimo (리모) 2022. 7. 5. 14:29

 

 

 

[R] 데이터 시각화 - ggplot2

[R] 데이터 시각화 - 그래프 활용과 Plot 데이터를 분석하는 것 자체도 중요하지만 분석결과를 남들이 쉽게 이해할 수 있도록 전달하는 것 또한 중요합니다. 이를 위해 데이터 시각화와 관련 함수

munak.tistory.com

 

위 글에 이어 ggmap을 이용해 지도위에 데이터를 시각화하는 내용을 다룹니다.

 


 

 

 

 

API 키 발급

 

먼저 ggmap 사용을 위해 API키를 발급 받아야합니다. 이를 위해 구글계정과 크레딧을 제공받을 카드가 필요합니다.

 

 

 

구글에 로그인 후 GCP(Google Cloud Platform)에 접속 합니다.

 

 

https://cloud.google.com/gcp/?utm_source=google&utm_medium=cpc&utm_campaign=japac-AU-all-en-dr-bkws-all-super-trial-e-dr-1009882&utm_content=text-ad-none-none-DEV_c-CRE_601753182389-ADGP_Hybrid+%7C+BKWS+-+EXA+%7C+Txt+~+GCP+~+General_cloud+-+platform-KWID_43700071493960735-kwd-87853815&userloc_1030686-network_g&utm_term=KW_gcp&gclsrc=aw.ds&gclid=CjwKCAjw_ISWBhBkEiwAdqxb9lZ8XLDi-sEWttm3oaxpckA16Jt5m--egmwHyiSdaPPaYE8yhZSTARoCnGUQAvD_BwE

 

cloud.google.com

 

 

 

 

 

 

무료로 시작을 선택합니다.

처음 가입시 제공되는 크레딧을 이용해 무료로 서비스를 이용할 수 있습니다.

 

 

 

 

 

 

 

 

절차에 따라 가입합니다. 저는 학교프로젝트/과제 목적을 선택하고 가입하였습니다.

 

 

 

 

 

 

 

 

 

 

 

가입이 완료된 화면 입니다.

 

 

 

 

 

 

 

 

 

 

이제 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을 이용해 아래 데이터를 시각화 합니다.

 

 

WIFI.csv
0.05MB

 

 

 

폴더를 생성하고 해당 파일을 저장합니다.

저는 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통계교육의 수업내용을 정리한 글입니다.

 

공부한 내용을 복습/기록하기 위해 작성한 글이므로 내용에 오류가 있을 수 있습니다.

댓글
«   2025/01   »
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
Total
Today
Yesterday