如何选择特定国家/地区来制作choropleth地图

问题描述 投票:0回答:2

我正在尝试绘制一些特定国家的choropleth地图。我的数据具有Choropleth映射的值,而其他我没有数据的国家/地区将以灰色绘制。

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

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())

enter image description here

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

有任何建议吗?

r ggplot2 choropleth choroplethr
2个回答
0
投票

我不确定您的问题是什么。但是,由于您使用了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)

enter image description here

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

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

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


0
投票

[如果要使用ggplot,则需要将数据帧添加到ggplot,并在列的fill中添加aes,以使地图根据ratemort的值填充颜色。

尝试这样的事情:

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())
© www.soinside.com 2019 - 2024. All rights reserved.