繁体   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