如何在wrld_simpl中为选定的国家/地区着色?

时间:2014-12-27 21:41:06

标签: r maptools

我有一部分wrld_simpl

的情节
library(maptools)
data(wrld_simpl)
cntr <- c('Denmark', 'Germany', 'Norway', 'Ireland', 'United Kingdom', 'France', 'Italy', 
         'Sweden', 'Finland', 'Spain', 'Portugal', 'Latvia', 'Estonia', 'Slovenia', 'Belgium',
         'Netherlands', 'Austria', 'Poland', 'Switzerland', 'Slovakia', 'Lithuania', 'Croatia', 
         'Czech Republic') 
my_map <- wrld_simpl[wrld_simpl$NAME %in% cntr,]
plot(my_map)

我想给一些国家上色,比如德国要红,丹麦要绿。我该怎么做?我试过这样的事情,但它没有按照我想要的方式工作:

country_colors <- list(Germany='red', Denamark='green')
plot(my_map, col=unlist(country_colors[as.character(my_map$NAME)]))

谢谢!

1 个答案:

答案 0 :(得分:2)

尝试使用与my_map $ NAME长度相同的向量,而不是长度为2的向量:

country_colors <- setNames(rep("white", length(my_map$NAME)), my_map$NAME)
country_colors[c("Germany", "Denmark")] <- c("red", "green") 
plot(my_map, col = country_colors)