使用rworldmap时,地图不完整

时间:2017-11-22 21:06:24

标签: r rworldmap

我有一些我想用rworldmap绘制的数据。通常这很好用。但是我无法弄清楚为什么它没有在它说出来的时候绘制所有数据。特别是它没有为美国绘制数据。

我在这里有一些数据:https://drive.google.com/file/d/1Fp7O2TRH5Blar56SqdRdcPh8Mb1Vb0pc/view?usp=sharing

我正在运行此代码:

mergedData = readRDS("sampleData.rds")
changeHeatMapPalette = c('#D7191D', '#FDAE61', '#FFFFBF', '#ABD9E9', '#2C7BB6')
mapData = joinCountryData2Map(mergedData, joinCode="ISO2", nameJoinColumn="country", mapResolution = "high")
mapCountryData(mapData, nameColumnToPlot="change", mapTitle="", catMethod = "diverging", colourPalette = changeHeatMapPalette, numCats = 90, borderCol = "grey70")

但后来我得到了这张地图: map plot

注意美国没有数据。但它肯定在样本数据中。它只排除了一个不是美国的国家。

108 codes from your data successfully matched countries in the map
1 codes from your data failed to match with a country code in the map
     failedCodes
[1,] "GF"       
143 codes from the map weren't represented in your data

知道我做错了吗?

1 个答案:

答案 0 :(得分:3)

问题是您以非常随机的方式设置colourPalettenumCats参数。

根据您的数据,我们确切地知道我们拥有多少类别,并且可以使用length(table(mapData$change)进行计数,并且您需要的颜色非常多(如果您提供的颜色少于mapCountData,则会使用警告)。

话虽如此,你的问题的一个解决方案就是这个

mapCountryData(mapData, 
  nameColumnToPlot="change", 
  mapTitle="", 
  catMethod = "diverging", 
  colourPalette = brewer.pal(library(RColorBrewer), 'RdYlBu'), 
  numCats = length(table(mapData$change)), 
  borderCol = "grey70")

enter image description here