在没有尼日利亚地图的情况下绘制尼日尔的麻烦

Boo*_*ogi 1 maps r country-codes

我想在地图包中的map()中填写尼日尔的国家.我意识到,除非你指明,否则以特定字母开头的特定国家都将进行绘图,但我无法在不绘制尼日利亚情节的情况下仅绘制尼日尔.

library(maps)
#plot map of Africa
map(database = "world", regions = ".", xlim = c(-20,60), ylim = c(-40,40), wrap = FALSE, resolution = 2, type = "l", bg = par("bg"), myborder = 0.01)

# fills in Nigeria alone
map(regions = 'Nigeria',fill = TRUE, add = TRUE, col = 'green')

#fills in the countries of Niger AND Nigeria
map(regions = 'Niger',fill = TRUE, add = TRUE, col = 'gray')
Run Code Online (Sandbox Code Playgroud)

在阅读了"地图"文档并找到了这个问题后,我查看countrycode_data了"countrycode"包中的国家列表,我发现了\\bniger(?!ia)我认为属于我的问题的正则表达式.对于以"几内亚","巴布亚新几内亚"和"几内亚比绍"等相同字母或单词开头的任何其他国家,我都有同样的问题.如何仅绘制最简单的版本国家/地区名称?包国家代码中的所有代码都没有在地图上单独绘制尼日尔.

sok*_*kin 5

根据地图库手册中map()描述:

exact:如果为TRUE,则仅选择与区域的精确匹配进行绘制.如果为FALSE,则区域的每个元素将作为正则表达式与数据库中的多边形名称匹配,并选择所有匹配进行绘制.

所需要的就是设置exact=TRUE:

map(regions = 'Niger', exact=TRUE, fill = TRUE, add = TRUE, col = 'gray')
Run Code Online (Sandbox Code Playgroud)

这产生了期望的结果

在此输入图像描述