感謝lmo
爲我指出正確的方向,我現在找到了解決方案。我會在這裏提供答案,包括一個可重複的例子。我也認爲我必須解釋一點我沒有說清楚的問題。我希望世界上所有的國家都能得到世界地圖。然後,我想爲島嶼國家添加額外的小點,讓它們可見。我找到的解決方案是首先繪製正常的世界地圖,然後爲第一個地圖添加第二個地圖,但僅限於lmo
建議的所選島嶼國家。
要開始了,這裏是代碼再次產生基本情節
par(mar=c(0,0,1,0))
data("countryExData",envir=environment(),package="rworldmap")
sPDF <- joinCountryData2Map(countryExData, joinCode = "ISO3", nameJoinColumn = "ISO3V10")
mapCountryData(sPDF, nameColumnToPlot="BIODIVERSITY", catMethod="fixedWidth")
這裏,這些島嶼是不可見的,他們只是太小了。現在我必須爲這些島國創建數據集。它們不在數據集中,所以爲了演示我想要做的事情,我選擇了一些島嶼國家並重新使用其他數據集中的一些數據。所以這裏的數據並不是實際的數據。
mapdata2 <- data.frame(ccode=c("ATG", "COM", "CPV", "DMA", "FJI", "FSM",
"GRD", "KIR", "KNA", "LCA", "MDV", "MHL", "MUS", "NRU","PLW", "SLB",
"STP", "SYC", "TON", "TUV", "VCT", "VUT", "WSM"),
biodiv=countryExData$BIODIVERSITY[1:23], size=1)
需要在最後的大小變量,以便所有的島點將具有相同的大小。現在我可以使用mapBubbles
命令爲所選島嶼國家添加點到原始地塊如下。
sPDF2 <- joinCountryData2Map(mapdata2, joinCode = "ISO3", nameJoinColumn = "ccode")
mapBubbles(sPDF2,nameZSize='size', nameZColour='biodiv',add = T,
addColourLegend = F, addLegend = F, pch=21, symbolSize=.22,catMethod="fixedWidth")
這產生了下面的地圖。可能有更好或更快的方法,但我現在對結果很滿意。當然顏色,符號大小等現在可以改變...
很寬泛的問題。我的建議是找到一個包含所有國家質心的文件,然後保留那些您認爲是小島國家的文件,並繪製這些點。也許這樣的文件已經存在於其中一個包中。 – lmo