댓글 쓰기 권한이 없습니다. 로그인 하시겠습니까?
사이트 로그인
이번에는 위도 경도 데이터를 어떻게 시각화 시킬것인지에 대하여 알려드리도록 할게요 : )
R에서는 ggmap, ggplot, googlevis 등의 패키지를 통하여 지역데이터를 시각화 시킬수 있습니다.
일단 첨부해 드린 예제 데이터를 다운 받은후 R에서 데이터를 Import시키세요.
(import시키는 법은 모두 아시리라 생각합니다. 모르시는 분은 R강의 기초편을 참고 해 주세요!)
이 예제 데이터는 제가 임의로 만든 데이터 입니다.
데이터는 아래와 같은 형태를 띄고 있습니다.
특정 사람의 이동경로와 시간, 위도, 경도, 한글지명등을 포함하고 있는 데이터 프레임 입니다.
다음으로 필요한 패키지인 ggplot2와 ggmap을 설치하고 라이브러리를 호출 해 주세요
install.packages("ggmap") install.packages("ggplot2") library(ggplot2) library(ggmap) df3 <- read.csv("sam.csv",header=TRUE) |
현재 df3에 데이터가 들어가 있습니다.
R에서는 구글을 통해 원하는 도시의 위도와 경도를 받아올 수 있는데요.
아래와 같은 코드로 해당 도시의 위도 경도를 받아 올 수 있습니다.
gc <- geocode('Seoul') cen <- as.numeric(gc) |
geocode 라는 함수를 통해 위도, 위도 경도를 받아 왔고, 이를 수치형 벡터로 만들어 준다음 cen라는 변수에 넣었습니다.
현재 center안에는 seoul 중심부의 위도 경도인 126.97797 37.56654 가 들어가 있습니다.
일단 R 에서 Seoul의 지도를 한번 확인 해 봅시다.
ggmap(get_googlemap(center=cen, scale = 1,maptype = "roadmap",zoom=7), fullpage = TRUE) |
center 옵션에는 지도의 중심부를 나타내 줄 위도 경도가 들어가 수치형 벡터가 필요합니다.
그래서 위 에서 cen이라는 변수에 서울의 위도,경도를 넣었습니다. scale과 zoom은 지도의 크기를 조절해주는 옵션입니다.
maptype은 roadmap말고도 여러 옵션을 지정해 줄 수 있습니다.
maptype = "hybrid" 인 경우
maptype = "satellite" 인 경우
maptype 대신에
source = "osm" 을 지정해준 경우
여러 맵 타입중에서도 roadmap이 가장 이뻐서(?) roadmap을 사용하는게 좋지 않을 까 싶습니다.
이제 데이터안에 있는 각 로그에 대하여 점을 찍어보도록 하겠습니다.
ggmap(get_googlemap(center=center, scale = 1,maptype = "roadmap",zoom=8), fullpage = TRUE) + geom_point(aes(x = longitude, y = latitude, colour = "red" , size= 10), data = df3) |
점찍는 것 외에도 여러가지 함수(옵션)를 더 추가 할 수 있는데, 각 함수 마다 + 로 연결 해주 셔야합니다.
위 코드에 보면 ggmap( ~ ) + geom_point 로 되어있는 것을 보실 수 있습니다.
geom_point를 통해서 로그의 점을 지도에 찍을 수 있는데. x에는 longitude 를 나타내는 데이터프레임의 칼럼명,
y에는 latitude 를 나타내는 데이터프레임의 칼럼명이 들어가야합니다.
현재 데이터 프레임의 위도 경도가 longitude, latitude 로 설정 되어 있기 때문에, 코드에 저렇게 들어가게 되는데
만일, 데이터프레임의 칼럼명이 lon, lat 일 경우에는 코드를 aes(x = lon, y = lat) 으로 고쳐주셔야합니다.
그리고 마지막에 data = df3 에는 해당 데이터프레임의 이름을 넣어주어야 합니다.
Designed by sketchbooks.co.kr / sketchbook5 board skin
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5