是否可以在使用choroplethr制作的地图上添加城市覆盖图?

时间:2019-04-30 17:57:19

标签: r choropleth choroplethr

在R方面,我是spankin的新手。非常感谢给您任何帮助。

我正在使用choroplethr软件包通过邮政编码创建地图。我想添加一个显示城市(以及仅城市)的叠加层,但是使用reference_map = TRUE只会返回带有州首字母的地形图,从而使实际颜色难以区分。

是否有一种方法可以将城市覆盖物附加到Choroplethr上,或者具有我所忽略的内置Choroplethr功能,或者将其与其他软件包组合在一起?

我当前的功能是

zip_choropleth(myexcel,
           title="Mansfield Geographical Capture by ZCTA",
           num_colors=9,
           state_zoom = c("massachusetts","rhode island","connecticut"), 
           reference_map = TRUE) 
           + scale_fill_brewer(palette="YlOrRd")

它返回这样的图像:

Bad Topographical Map... D:

我想要这样的东西(加上城市覆盖物!):

Good Zip Map! :D

1 个答案:

答案 0 :(得分:1)

这是可能的。为了完成它,您需要了解一些事情:

  1. 所有choroplethr函数都返回ggplot2对象。这些地块的规模很长,很长。
  2. 您可以使用+运算符在ggplots中添加另一层。
  3. 您需要知道要添加的所有城市的经度和纬度。根据google的说法,波士顿长为42.361145,lat = -71.057083。
  4. Choroplethr本身不了解城市及其位置。

以下是使用geom_point为波士顿添加黑点的演示:

library(choroplethrZip)
library(ggplot2)

data(df_pop_zip)

zip_choropleth(df_pop_zip,
               state_zoom = c("massachusetts","rhode island","connecticut")) +
  geom_point(aes(x=-71.057083, y=42.361145), size=5, color="black") 

choropleth with dot for Boston

注意:这只是添加一个点。您将不得不使用其他东西来添加文本。查看?geom_label?geom_text的ggplot2帮助文件。