【问题标题】:Mapping my data to a Zip Code area map in R将我的数据映射到 R 中的邮政编码区域地图
【发布时间】:2020-06-10 16:06:34
【问题描述】:

我的数据是这样的:

ZIPcode Cases   longi   lati
43613   1   -83.604452  41.704307
44140   1   -81.92148   41.48982
46052   1   -86.470531  40.051603
48009   22  -83.213883  42.544619
48017   6   -83.151815  42.535396
48021   7   -82.946167  42.463894
48025   19  -83.265758  42.523195

我想在 R 中获得与此类似的地图(如果你能看到的话)。轮廓应该是邮政编码,阴影应该根据案例的数量,随着案例的增加而变暗。

我对 R 很陌生。尝试了很多我在网上找到的代码,但无法得到我想要的。任何帮助表示赞赏。这可以在基本 SAS 中完成吗? 谢谢!

enter image description here

【问题讨论】:

    标签: r mapping zipcode


    【解决方案1】:

    当然,你可以在 R 中做到这一点,我为你整理了一个 reprex(可重现的例子)。要点:

    1. 您需要将.shp 文件(或.geojson.gpkg 等)加载到R 中。那是带有地图轮廓的实际文件。对于 ZIPCODES,我找到了一个 R 包,tigris,它可以为您执行此操作,如果没有,您需要自己加载它。
    2. 对于处理映射对象(加载、转换、.etc),sf 包是您最好的朋友。
    3. 对于绘图,在此示例中我使用了cartography,但您可以使用几个不同的包,如ggplot2tmap

    最后一行是,鉴于您的数据(如果我没有弄错邮政编码),您显示的地图(等值线地图)可能不是最佳选择。查看here 以了解其他替代方案。

    library(sf) #Overall handling of sf objects
    library(cartography) #Plotting maps package
    
    #1. Create your data
    yourdata <- data.frame(ZCTA5CE10=c("43613", "44140", "46052",
                                    "48009","48017", "48021","48025"),
                        Cases=c(1,1,1,22,6,7,19)
                        )
    
    #2. Download a shapefile (shp,gpkg,geojson...)
    library(tigris) #For downloading the zipcode map
    options(tigris_use_cache = TRUE)
    geo <- st_as_sf(zctas(cb = TRUE, starts_with = yourdata$ZCTA5CE10))
    
    #Overall shape of USA states
    states <- st_as_sf(states(cb=TRUE))
    #For plotting, all the maps should have the same crs
    states=st_transform(states,st_crs(geo))
    
    #3. Now Merge your data
    yourdata.sf=merge(geo,yourdata)
    
    #4. Plotting
    par(mar=c(1,1,1,1))
    ghostLayer(yourdata.sf)
    plot(st_geometry(states), add=TRUE)
    choroLayer(yourdata.sf,
               var="Cases",
               add=TRUE,
               border = NA,
               legend.pos = "right",
               legend.frame = TRUE)
    layoutLayer(title = "Cases by ZIPCODE",
                theme = "blue.pal",
                scale = FALSE,
                sources = "Source; your question on SO",
                author = "by dieghernan, 2020"
                )
    

    reprex package (v0.3.0) 于 2020 年 2 月 27 日创建

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-25
      • 2011-01-28
      • 1970-01-01
      • 2018-11-23
      • 2012-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多