如何select特定国家制作等值线图

How to select specific countries to make a choropleth map

我正在尝试制作一些特定国家/地区的等值线图。我有等值线图的数据,我没有数据的其他国家将以灰色绘制。

到目前为止,这是我的代码:

data_iso = data.frame(region=c("Argentina", "Brazil",   "Chile", "Colombia", "Costa Rica", "Mexico", "Panama", "Peru",  "El Salvador"),
                      ratemort = c(25.510391, 73.875825,20.297896,  73.557939  ,23.266236,  42.190321,  48.069608,  9.971303 ,109.941822))

library(ggmap)
library(ggplot2)
library(raster)
library(maptools)

mapa <- borders("world", regions = c("Brazil", "Uruguay", "Argentina", "French Guiana", "Suriname", "Colombia", "Venezuela",
                                     "Bolivia", "Ecuador", "Chile", "Paraguay", "Peru", "Guyana", "Panama", "Costa Rica", 
                                     "Nicaragua", "Honduras", "El Salvador", "Belize", "Guatemala", "Mexico", "Trinidad and Tobago",
                                     "Caribe", "Puerto Rico", "Dominican Republic", "Haiti", "Jamaica", "Cuba", "Bahamas", "Antiles",
                                     "Dominica", "Saba"), 
                fill = "grey70", colour = "black")
ggplot() + mapa + theme_bw() + xlab("Longitude (decimals)") + ylab("Latitude (decimals)") + 
  theme(panel.border = element_blank(), panel.grid.major = element_line(colour = "grey80"), panel.grid.minor = element_blank())

然后,我想在各自的国家/地区添加 data_iso$ratemort 的值。

有什么建议吗?

我不太确定你的问题是什么。但是由于您使用了 choroplethr 标签,我将解释如何使用 choroplethr 包制作地图:

data_iso = data.frame(region=c("argentina", "brazil",   "chile", "colombia", "costa rica", "mexico", "panama", "peru",  "el salvador"),
                      value = c(25.510391, 73.875825,20.297896,  73.557939  ,23.266236,  42.190321,  48.069608,  9.971303 ,109.941822))

country_choropleth(data_iso, zoom=data_iso$region)

关键修改是这个。函数 ?country_choroplethchoroplethr 套件中的所有函数一样,要求您的数据框具有一列名为 region 和一列名为 value。此外,choroplethr 中的所有区域通常都使用小写字母。有关命名约定的详细信息,请参阅 ?country_choroplethr

您的地图没有颜色。我不确定这是否是您需要帮助的错误。

默认情况下 choroplethr 使用黑色来传达 NA 值。在这里,我将缩放比例设置为仅具有数据的国家/地区。我不知道您缩放列表中的所有县是否都出现在地图中,它们的拼写方式是否与它们在地图中出现的方式相同,等等。有关详细信息,请参阅 ?country_choropleth 中的 zoom 参数。正确命名通常是 R 映射中最难的部分(包括 choroplethr 包)。

如果您想使用 ggplot,您需要将数据框添加到 ggplot 并在 aes 中添加 fill 和您的列,以便地图根据比率值。

尝试这样的事情:

ggplot(data = data_iso, aes(fill = ratemort)) + mapa + theme_bw() +  
 xlab("Longitude (decimals)") + ylab("Latitude (decimals)") +  
 theme(panel.border = element_blank(), panel.grid.major =  
 element_line(colour = "grey80"), panel.grid.minor = element_blank())