2017-11-08 26 views
0

좋은 하루,R에 ggmap을 사용하여 상황에 맞는 (또는 임의의) 맵 인세 트를 추가 하시겠습니까?

의 나는이지도를 만들기 위해 R에 library(ggmap)를 사용한다고 가정 해 봅시다 :

ggmap(get_map(location = c(lon = -81.38630, lat = 19.30340), source = "stamen", maptype = "terrain", zoom = 14)) 

제공 : I가 작은 상황 삽입 맵을 추가하려면 어떻게

enter image description here

을 이 이미지 (아마도 왼쪽 상단 근처에 있습니까?)가 더 넓은 지리적 영역을 나타낼 수 있습니까? 이 작은 인세 트에는 더 큰지도가 들어있는 곳을 설명하는 상자가 있습니다.

감사합니다.

답변

3

grid 뷰포트를 기반으로 한 가능한 해결책은 다음과 같습니다.

library(ggmap) 
library(grid) 

map1 <- get_map(location = c(lon = -81.38630, lat = 19.30340), 
     maptype = "terrain", zoom = 14) 
map2 <- get_map(location = c(lon = -81.38630, lat = 19.30340), 
     maptype = "terrain", zoom = 12) 

p1 <- ggmap(map1) 
g1 <- ggplotGrob(p1) 
grid.draw(g1) 

pushViewport(viewport(x=0.25, y=0.8, w=.3, h=.3)) 
xy <- data.frame(x=c(-81.41,-81.41,-81.36,-81.36,-81.41), 
     y=c(19.33,19.28,19.28,19.33,19.33)) 
p2 <- ggmap(map2) + 
     geom_path(data=xy, aes(x,y), color="red", lwd=1) + 
     theme_void() 
g2 <- ggplotGrob(p2) 
grid.draw(g2) 
grid.rect(gp=gpar(col="white", lwd=5)) 
popViewport() 

enter image description here

+0

감사합니다! 이것은 기본적으로 저에게 도움이되었지만, 기존 플롯의 꼭대기에 그렸습니다 (플롯을 만들기 전부터). 완전히 새로운 음모를 시작한 다음이 코드를 실행하는 방법이 있습니까? – hpy

+1

@hpy 당신을 도울 수있어서 좋구나! 새 페이지를 열려면'grid.newpage'를 실행 해보십시오 https://www.rdocumentation.org/packages/grid/versions/3.4.1/topics/grid.newpage –

+0

아, 알았습니다. grid.newpage()' 다시 한 번 감사드립니다! – hpy