【问题标题】:How to fill the blank in choropleth in r ? ggplot2 and maps如何填写 r 中 choropleth 的空白? ggplot2 和地图
【发布时间】:2015-10-12 12:44:56
【问题描述】:

谁能告诉我如何填写 choropleth 中的空白字段?我为我创建的合唱团附上了一张图片。非常感谢!

我注意到两个表中的 statename 不匹配,但我无法更改原始数据中的 statename。

library(ggplot2)
library(maps)
**#Data looks like this:**

aggrev2015<-data.frame(
statename=c("alabama","alaska","arizona","arkansas","california","colorado","connecticut","delaware","florida","georgia","hawaii","idaho","illinois","indiana","iowa","kansas","kentucky","louisiana","maine","maryland","massachusetts","michigan", "minnesota","mississippi","missouri","montana","nebraska","nevada","new hampshire","new jersey","new mexico","new york","north carolina","north dakota","ohio","oklahoma", "oregon","pennsylvania","rhode island","south carolina","south dakota","tennessee","texas","utah","vermont","virginia","washington","west virginia","wisconsin","wyoming"),
  revenue=runif(50,min=100,max=9000))

state_df <- map_data("state")
colnames(state_df)<-c("long","lat","group","order","statename","subregion")

choropleth <- merge(aggrev2015,state_df, by = "statename")

ggplot(choropleth, aes(long, lat, group = statename)) +
  geom_polygon(aes(fill = revenue))

【问题讨论】:

  • 您没有附上任何图片,也没有真正提供任何数据供任何人使用。我建议将您的“阿拉斯加/夏威夷”问题作为一个单独的问题,并且您是否对在美国地图中添加 HI 和 AK 进行了任何研究?您在上述研究中遇到过rud.is/b/2014/11/16/moving-the-earth-well-alaska-hawaii-with-r 吗?
  • 感谢您添加图片链接。我已经扩展了它。看到那张地图后,你最好使用choroplethr 包(它在 CRAN 中)。

标签: r ggplot2 maps choropleth


【解决方案1】:

乍一看,您的问题似乎与拥有岛屿的州有关。我不会调试它,而是跟进@hrbrmstr 使用 choroplethr 的建议:

library(choroplethr)
library(choroplethrMaps)

data(df_pop_state)
state_choropleth(df_pop_state)

您可以查看更多关于使用 choroplethr 包 here 创建状态 choropleth 的文档,该包也有一个 email course

对于状态 choropleths,我认为包比自己做的主要优势在上面的小插图中得到了展示:它使探索性数据分析变得更加容易。例如,更改比例或缩放变得像在函数上设置参数一样简单。该软件包还包括 AK 和 HI 以及使用合理的投影。在 ggplot2 中自己解决这些问题往往是一件令人头疼的事情。请注意,我是 choroplethr 的作者,所以我是根据经验发言的 :)

要指出的另一件事是,您可能希望将等值线覆盖在参考地图上,例如来自谷歌地图的地图。我最近将该功能添加到最新版本的 choroplethr。但是我还没有机会更新包小插曲来解释如何使用它。要获取默认参考地图,只需设置reference_map = TRUE:

data(continental_us_states)
state_choropleth(df_pop_state, 
                 zoom = continental_us_states,
                 reference_map = TRUE)

如果您想使用不同的参考地图(例如卫星地图),您可以这样做。我刚刚在上面写了blog post。这是我几周前实施参考地图功能后遇到的最常见问题。

【讨论】:

  • 谢谢!如果我的数据中的状态与“state.regions”中的状态不完全匹配怎么办?例如,我缺少“哥伦比亚特区”。
  • 默认缺失区域显示为黑色。
  • 谢谢!!太棒了~
  • 如何在这个 choropleth 上添加 mouseover 事件?我没有找到任何有用的东西。好像这样只是创建一个静态图像?
  • 它只是创建静态图像。这与您对 ggplot2 的限制相同,这是您最初的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-01
  • 2022-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多