簡體   English   中英

在世界地圖上將島嶼繪制為點

[英]Plot islands as dots on world map

我正在使用rworldmap創建一個世界地圖以顯示數據。 就我的數據而言,小島國非常重要,但它們太小,無法看到何時顯示整個世界。 因此,我想在島國的位置上以合適類別的顏色顯示一個小的可見圓點/圓圈。 我環顧四周,但沒有找到解決方案。 當然,我可以為每個島國手動執行此操作。 我的問題是,有沒有更快的解決方案?

作為示例,這是rworldmap軟件包隨附的用於繪制數據(在本例中為生物多樣性)的標准示例。 在這張地圖上,我怎么能顯示島國? 任何建議,將不勝感激!

library(rworldmap)
mapCountryData()
data("countryExData",envir=environment(),package="rworldmap")
sPDF <- joinCountryData2Map(countryExData
              , joinCode = "ISO3"
              , nameJoinColumn = "ISO3V10"
              )
mapCountryData( sPDF
              , nameColumnToPlot="BIODIVERSITY" 
              )

感謝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)

最后需要size變量,以便所有孤島點都具有相同的大小。 現在,我可以使用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")

這產生了下面的地圖。 也許有更好或更快速的方法,但是我現在對結果非常滿意。 當然,顏色,符號大小等都可以更改了。

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM