在R中,我想按价值为美国各州着色。 我将数据放在这样的表中:
AK 0.1511529
AL 0.1720370
AR 0.2078534
AZ 0.2057174
等
如何以简单的方式完成此操作?我尝试过使用
maps("state"),
但是这给了我与州缩写不对应的州名:
"alabama"
"arizona"
等等
"washington:orcas island"
我觉得应该有一个简单的解决方案,而不是尝试使用
匹配它们 state.abb
state.name
由于
答案 0 :(得分:0)
匹配并不是一个糟糕的解决方案。我希望这个代码示例有所帮助。
# your values (here as named vector)
values <- runif(length(state.abb),0,1)
names(values) <- state.abb
# getting the names used by map
tmp <- map('state',plot=FALSE,namesonly=TRUE)
# matching (after adjusting using gsub and tolower)
tmp <- match(gsub('(:.*)','',tmp),tolower(state.name))
# convert your numbers to grey-scale and selct using the match
map('state',fill=TRUE,col=grey(values)[tmp])
匹配是必要的,因为每个状态可能有多个多边形。