如何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_choropleth
与 choroplethr
套件中的所有函数一样,要求您的数据框具有一列名为 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())
我正在尝试制作一些特定国家/地区的等值线图。我有等值线图的数据,我没有数据的其他国家将以灰色绘制。
到目前为止,这是我的代码:
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_choropleth
与 choroplethr
套件中的所有函数一样,要求您的数据框具有一列名为 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())