2014-11-13 61 views
2

我想用R製作一些使用spatialpolygons的colerful地圖。我從gadm.org網站下載了shapefile文件,並按照我想要的http://bl.ocks.org/prabhasp/raw/5030005/將區域着色。但是,我認爲地圖看起來好多了,如果我能夠把地圖上還越南分享與邊框國家的一部分,在這個維基地圖R如何向一個國家添加邊境國家spatialpolygons地圖

vietnam_wiki

我不知道該怎麼首先,有人能給我一個提示嗎?我是否應下載區域地圖,然後加入邊境國家的地區,並在越南的省級工作?或者我可以在國家一級繪製我的越南地圖嗎?

+0

如果您在鏈接的bl.ocks代碼中使用ggplot,只要具有形狀數據就可以輕鬆添加更多的多邊形。這只是通過源數據框將更多行添加到源數據幀 – arvi1000

+0

的問題,您指的是由命令fortify創建的數據幀? – kateryna

回答

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",...)

+0

Mhh,這是個竅門,但我無法適應所有與之相關的代碼來爲各省着色。我的意思是,ggplot命令中的代碼與我目前使用的代碼有些不同(就像鏈接中的代碼一樣)。我將首先查看手冊,看看geop_map和geom_polygon之間有什麼區別。謝謝 – kateryna