2017-11-08 5 views
0

良い一日、Rにggmapを含む文脈的(または任意の)マップのインセットを追加しますか?

のは、私がこのマップにするためにRにlibrary(ggmap)を使用しましょう:

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

与える:私は小さなコンテキスト差し込みマップを追加するにはどうすればよい

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

関連する問題