2017-02-14 92 views
1

我是R新手,需要帮助。我需要制作一个邮政编码地图。数据框如下 -在R中创建Zipcode美国地图并在地图上添加图例

Zipcode plpn 
31139  138 
85941  58 
85349  104.01 
87305  101 
86515  98.08 
79849  96.98 

我想在美国地图上绘制此图并通过plpn变量应用颜色。

 plpn color 
    0-50 light blue 
    50-100 blue 
    100+ dark blue 

您能否告诉我在R中最简单的方法?

注 - 我通过网页希望在这一点,但代码似乎对我来说有点复杂(https://www.r-bloggers.com/my-first-r-package-zipcode/

我尝试以下 -

library(maps) 
    library(zipcode) 
    data(zipcode) 

    setwd("C:/Users/rkpanda/Documents/TEMP/Feb2017/") 
    mktng <- read.csv(file="zipcode_mrktng.csv", header=T, sep = ",") 
    mktng2 <- merge(mktng, zipcode, by.x='postal_cd', by.y = 'zip') 
    mktng3 <- subset(mktng2, plpn_by_credit > 50) 
    map("state") 
    points(mktng3$longitude, mktng3$latitude, pch= 20, cex= 0.5,  col="blue") 

是否有适用的标签(城市道路与邮编相关的名称)添加到地图上显示的点上?

+0

您可以从查找美国所有邮编的形状文件开始。这些文件是公开的。然后,您可以使用多个包从您的数据创建一个choropleth。如果这个问题在我回家的时候还没有回答,我很想进一步了解它。 –

+0

我正在尝试使用choropleth - https://www.trulia.com/blog/tech/the-choroplethr-package-for-r/ 当我使用本页面提到的邮编代码时,我收到以下警告消息。 > choroplethr(DF,LOD = “ZIP”,num_buckets = 1) 警告消息: 在choroplethr(DF,LOD = “ZIP”,num_buckets = 1): 该函数不赞成使用choroplethr版本2.0.0 。请使用?state_choropleth,?county_choropleth,?zip_map –

+0

您可以通过应用与邮政编码关联的图例城市名称来澄清您的意思吗? – troh

回答

0

您可以从这里得到的shape文件:

https://www.census.gov/geo/maps-data/data/cbf/cbf_zcta.html

这是缓慢的,因为它正密谋了整个美国,但它的工作原理:

library(rgdal) 
library(dplyr) 
library(ggplot2) 
library(ggmap) 

shp <- readOGR('shapefiles/cb_2015_us_zcta510_500k', 
    'cb_2015_us_zcta510_500k', stringsAsFactors = FALSE) 

shpDF <- fortify(shp) 
shpData <- [email protected] 
shpData$AWATER10 <- as.numeric(shpData$AWATER10) 
shpData$id <- row.names(shpData) 
shpDF <- shpDF %>% 
    left_join(shpData, by = 'id') 

ggplot(shpDF) + 
    geom_polygon(aes(x = long, y = lat, group = group , fill = (AWATER10)), 
      color = 'gray') + 
    theme_minimal() + 
    xlim(-125, -65) + 
    ylim(24, 50) 

最终的结果图像的心不是这个伟大的邮编级别。邮政编码的分辨率太小。

要添加您自己的数据,只需将其加入到ZCTA5CE10字段中的shpDF。