如何在 R 中使用邮政编码创建地图?

问题描述 投票:0回答:2

我正在尝试根据邮政编码制作加利福尼亚州的图表,因为我有一些基于邮政编码的数据。我尝试过使用 excel-geography 进行绘图,但他们只自信地绘制了一部分邮政编码。

excel map

最近,我学习了 R 中的一个映射包,名为 Tigris,非常棒。尽管邮政编码在技术上不是地理信息,但他们仍然列出了邮政编码,但只是 2010 年的数据。这是我所做的:

zipcodes <- zctas(year = 2010, state = "CA")
zipcodes <- zipcodes %>% filter(ZCTA5CE10>90000 & ZCTA5CE10 <96162) #Range of CA zip codes.
plot(zipcodes$geometry)

但是使用正确的范围,地图似乎不完整。

Update: R just produced a better one

我想要一张与 Excel 中生成的地图类似的地图,但具有更多的邮政编码覆盖范围和美观选项。使用邮政编码绘制地图有哪些建议?我对空间分析非常陌生,并且也愿意了解其他软件包(如果有)。谢谢!

r geospatial tidycensus tigris
2个回答
0
投票

正如您已经提到的,邮政编码 (ZIP) 不太适合地理空间可视化。

美国关于 ZCTA 的人口普查:“USPS 邮政编码不是区域特征,而是邮件投递路线的集合。”

2010 年 ZCTA 将不会制作完整的加利福尼亚州地图。为了使地图看起来更加连贯,您可以先绘制州的形状,然后在顶部绘制 ZCTA 形状。

以下是如何执行此操作并使用 ZCTA 的土地面积作为颜色阴影的示例:

library(tigris)
library(tidyverse)

zipcodes <- zctas(year = 2010, state = "CA", progress_bar = FALSE)

us_states <- states(progress_bar = FALSE)
ca <- us_states |> filter(STUSPS == "CA")

ggplot() +
  geom_sf(data = ca) +
  geom_sf(aes(fill = ALAND10, color = ALAND10), data = zipcodes) +
  theme_void()


0
投票

如果您选择

cb = TRUE
year = 2000
,您将获得该州的完整覆盖:

library(tigris)
library(ggplot2)

zipcodes <- zctas(year = 2000, state = "CA", cb = TRUE)

ggplot() +
  geom_sf(data = ca, fill = "gray90") +
  geom_sf(data = zipcodes, aes(fill = AREA)) +
  scale_fill_gradient(low = "#e0d080", high = "cornsilk") +
  theme_minimal()

© www.soinside.com 2019 - 2024. All rights reserved.