如果這是一次性的,我傾向於這樣做。
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",...)
。
如果您在鏈接的bl.ocks代碼中使用ggplot,只要具有形狀數據就可以輕鬆添加更多的多邊形。這只是通過源數據框將更多行添加到源數據幀 – arvi1000
的問題,您指的是由命令fortify創建的數據幀? – kateryna