R: cropping/zooming 一张地图

R: cropping/zooming a map

我正在尝试在加拿大地图上叠加数据,但是我无法按照自己的意愿调整缩放比例。在地图中,我希望能够看到每个省份的线条及其名称(因此使用 map("world", "Canada") 是不可取的)

我试过改变缩放比例,但一个缩小太多,另一个放大太多:

qmap(location = "Canada", zoom = 3)

qmap(location = "Canada", zoom = 4)

我已经尝试研究如何裁剪图像但没有成功

谢谢!

您可以使用 mapsmapsdata 包来解决这个问题,或者继续使用 ggmap。这只是取决于你想要多少细节。

library(raster)
library(maps)
library(mapdata)
canada<-getData("GADM",country="CAN",level=1)

plot(canada,xlim=c(-141,-53),ylim=c(40,85),col="gray80",border="gray40",axes=T,las=1)
invisible(text(getSpPPolygonsLabptSlots(canada),labels=as.character(substr(canada$HASC_1,4,5)), 
               cex=0.75, col="black",font=2))

使用ggmap,您可以在抓取空间数据时指定边界框。它仍然覆盖了您感兴趣的一些区域(即,绘制了美国的大部分地区)。因此,将边界框值重新应用到 ggmap 函数会减少可视区域。

library(ggmap)

lats<-c(40,85)
lons<-c(-141,-53)
bb<-make_bbox(lon=lons,lat=lats,f=0.05)
cda<-get_map(bb,zoom=3,maptype="terrain")
ggmap(cda)+xlim(lons)+ylim(lats)+theme_bw()+labs(x="Longitude",y="Latitude")