R中的美国Choropleth地图

Posted

技术标签:

【中文标题】R中的美国Choropleth地图【英文标题】:US Choropleth map in R 【发布时间】:2014-03-27 06:32:49 【问题描述】:

我已经阅读了几乎所有的谷歌链接来尝试制作其中的一个。

我正在使用 gtd 数据集 (http://www.start.umd.edu/gtd/contact/)

我要做的是使用 maps 包根据该州发生的攻击次数为美国地图的各州着色。

根据我看到的代码,我知道我需要将数据中的名称与地图包中的名称相匹配,然后选择要绘制的数据。

US<- subset(x=gtd, country_txt="United States")
stateattacks<- ddply(US, .(provstate), "nrow")
data(state) 
mapnames<- map("state", plot=FALSE)$names
region_list<- strsplit(mapnames, ":")
mapnames2<- sapply(region_list, "[", 1)
m<- match(mapnames2, tolower(stateattacks$provstate)
map.area <- nrow[m] #nrow is the variable I am trying to match.. but this step gives Error in nrow[m] : object of type 'closure' is not subsettable. 

我只是试图根据该状态下的攻击次数 (nrow) 映射每个状态的颜色,但我无法对其进行配置。

【问题讨论】:

这样的? ***.com/questions/22506167/… 【参考方案1】:

回到“过去”,这些 choropleths 在 R 中做了一些工作,但是有了 Trulia 优秀人员的 choroplethr 软件包,它比在 R 中应该容易得多(至少对于美国 choropleths 而言):

library(choroplethr)

gtd <- read.csv("gtd.csv")

US <- gtd[gtd$country_txt == "United States",]

stateattacks<- ddply(US, .(provstate), "nrow")

# choroplethr needs these column names
colnames(stateattacks) <- c("region", "value")

# choroplethr might do this internally (have not checked)
# but it's not a bad thing to do anyway
stateattacks$region <- tolower(stateattacks$region)

# it won't work with the (…) bit and that might have been your 
# problem with "old school' chorpleths not working
stateattacks$region <- gsub(" (u.s. state)", "", stateattacks$region, fixed=TRUE)

# make the US choropleth
choroplethr(stateattacks, lod="state")

包中有大量自定义选项。

这种特殊情况的 choropleth 可能没问题,但对于其他类型的数据,考虑对总体进行归一化通常是个好主意,否则它可能会不正确地扭曲消息。

【讨论】:

@hbrmstr:小更新:choroplethr() 已弃用。将使用 state_choropleth() 代替。

以上是关于R中的美国Choropleth地图的主要内容,如果未能解决你的问题,请参考以下文章

R中的地热图

choropleth地图数据未加载到由bing提供的excel地图中的状态IN和MN

Plotly:如何在 Choropleth 地图上显示州线

R中的Cartogram + choropleth地图

如何在r中添加特定(选定)美国州地图的边界?

使用 R 在美国地图中突出显示邮政编码