从 shapefile 中提取邮政编码并在 R 中绘图
subsetting zipcodes from shapefile and plotting in R
我有 ZCTA 的美国人口普查 Shapefile。我只对策划纽约感兴趣。我可以读取整个 shapefile 并通过限制经度和纬度仅绘制 NY,但这需要很长时间并且 R 不断崩溃。
相反,我想减少到只有纽约的邮政编码。我正在读取 shapefile,转换为数据帧,然后子集化为纽约的 zipcodes/ZCTAs。然而,当我绘制结果时,它并不是一张完整的地图。这是正确的方法吗?我的 R 代码和情节如下:
### read in the ZCTA shapefile for US
us_modzcta <- "Data/us_zcta/tl_2018_us_zcta510.shp"
us <- shapefile(us_modzcta)
## convert to dataframe
us_df <- fortify(us,region="ZCTA5CE10")
## subset - keep only zip codes in NY - starts with 10, 11, 12, 13, 14
ny_df <- us_df[which(startsWith(us_df$id,c("11","12","13","10","14"))),]
p<- plot(ny_df)
为什么通过 raster
和 ggplot2?
的路径如此复杂请查看 sf
包:
library(sf)
library(tidyverse)
us_modzcta <- "census/tl_2018_us_zcta510.shp"
ny <- st_read(us_modzcta) |>
filter(grepl("^1[0-4]", ZCTA5CE10))
plot(ny$geometry)
由 reprex package (v2.0.1)
于 2022-03-05 创建
我有 ZCTA 的美国人口普查 Shapefile。我只对策划纽约感兴趣。我可以读取整个 shapefile 并通过限制经度和纬度仅绘制 NY,但这需要很长时间并且 R 不断崩溃。
相反,我想减少到只有纽约的邮政编码。我正在读取 shapefile,转换为数据帧,然后子集化为纽约的 zipcodes/ZCTAs。然而,当我绘制结果时,它并不是一张完整的地图。这是正确的方法吗?我的 R 代码和情节如下:
### read in the ZCTA shapefile for US
us_modzcta <- "Data/us_zcta/tl_2018_us_zcta510.shp"
us <- shapefile(us_modzcta)
## convert to dataframe
us_df <- fortify(us,region="ZCTA5CE10")
## subset - keep only zip codes in NY - starts with 10, 11, 12, 13, 14
ny_df <- us_df[which(startsWith(us_df$id,c("11","12","13","10","14"))),]
p<- plot(ny_df)
为什么通过 raster
和 ggplot2?
的路径如此复杂请查看 sf
包:
library(sf)
library(tidyverse)
us_modzcta <- "census/tl_2018_us_zcta510.shp"
ny <- st_read(us_modzcta) |>
filter(grepl("^1[0-4]", ZCTA5CE10))
plot(ny$geometry)
由 reprex package (v2.0.1)
于 2022-03-05 创建