R如何将边界国家添加到国家空间多边形地图中

时间:2014-11-13 17:17:47

标签: r maps

我正在尝试使用带有R的空间多边形来制作一些强大的地图。我从gadm.org网站下载了shapefile并按照我想要的http://bl.ocks.org/prabhasp/raw/5030005/颜色区域。但是,如果我能够在地图上放置越南与其共享边界的国家的一部分,我认为地图会更好看,就像在这个维基百科地图中一样

vietnam_wiki

我不知道从什么开始,有人可以给我一个提示吗?我应该下载区域地图,然后加入边境国家的地区,并在越南省级工作吗?或者我可以在国家一级绘制我的越南地图吗?

1 个答案:

答案 0 :(得分:3)

如果这是一次性的话,我会倾向于这样做。

library(raster)
library(ggplot2)
vietnam  <- getData("GADM",country="Vietnam",level=2)
china    <- getData("GADM",country="China",level=0)
laos     <- getData("GADM",country="Laos",level=0)
cambodia <- getData("GADM",country="Cambodia",level=0)
thailand <- getData("GADM",country="Thailand",level=0)

ggplot(vietnam,aes(x=long,y=lat,group=group))+
  geom_polygon(aes(fill=id),color="grey30")+
  geom_polygon(data=china,fill="grey60",color="grey80")+
  geom_polygon(data=laos,fill="grey60",color="grey80")+
  geom_polygon(data=cambodia,fill="grey60",color="grey80")+
  geom_polygon(data=thailand,fill="grey60",color="grey80")+
  coord_map(xlim=c(-1,1)+bbox(vietnam)["x",],ylim=c(-1,1)+bbox(vietnam)["y",])+
  scale_fill_discrete(guide="none")+
  theme_bw()+theme(panel.grid=element_blank())

标记边境国家比较棘手,因为您必须知道放置标签的位置,并且您不能使用国家/地区质心,因为它们不在地图上。我会包括眼球,并使用annotate(geom="text",...)