You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用R语言usmap包绘制美国国会选区(CD)地图?

用usmap绘制美国国会选区地图的实现方案

usmap包本身没有内置国会选区的绘图支持,但可以借助它的预设投影与布局,结合ggplot2的图层叠加功能,实现风格一致的国会选区地图,同时保留usmap的易用性。

1. 获取国会选区Shapefile

使用tigris包获取简化版的2023年国会选区空间数据:

library(tigris)
# cb=TRUE表示获取简化边界,resolution='500k'控制精度,year指定选区版本
districts <- congressional_districts(cb = TRUE, resolution = '500k', year = 2023)

2. 匹配usmap的投影坐标

usmap默认采用Albers等面积投影,需将tigris获取的WGS84坐标系数据转换为对应投影:

library(usmap)
library(sf)

# 获取usmap使用的坐标参考系
usmap_crs <- get_crs()
# 转换选区数据的坐标
districts_proj <- st_transform(districts, usmap_crs)

3. 绘制usmap风格的国会选区地图

可以通过两种方式实现:

方式一:叠加选区到usmap底图

先绘制usmap的州边界作为底图,再叠加选区图层,保持布局对齐:

library(ggplot2)

# 绘制基础州边界(透明填充,仅保留边框)
base_map <- plot_usmap(regions = "states", color = "gray80", fill = "transparent")

# 叠加国会选区图层
base_map +
  geom_sf(data = districts_proj, fill = "#cce5ff", color = "white", size = 0.1, inherit.aes = FALSE) +
  theme(legend.position = "none")

方式二:直接用usmap主题绘制选区

如果不需要州底图,可直接基于转换后的选区数据绘图,应用usmap的主题样式:

ggplot() +
  geom_sf(data = districts_proj, fill = "#cce5ff", color = "white", size = 0.1) +
  theme_usmap() # 复用usmap的主题风格

4. 添加数据可视化示例

要展示选区的投票倾向、收入中位数等数据,只需将业务数据与选区空间数据合并,映射到填充颜色即可:

# 假设已有包含选区GEOID和对应数据的dataframe(如vote_data)
districts_with_data <- merge(districts_proj, vote_data, by.x = "GEOID", by.y = "district_geoid")

# 绘制带数据的选区地图
plot_usmap(regions = "states", color = "gray80", fill = "transparent") +
  geom_sf(data = districts_with_data, aes(fill = vote_lean), color = "white", size = 0.1, inherit.aes = FALSE) +
  scale_fill_gradient2(low = "darkblue", mid = "white", high = "darkred", midpoint = 0) +
  labs(title = "美国国会选区投票倾向分布", fill = "政党倾向") +
  theme(plot.title = element_text(hjust = 0.5))

注意事项

  • 若选区数据包含海外领地(如波多黎各),可通过dplyr::filter()筛选出美国本土选区,保持与usmap默认布局一致。
  • 调整size参数可控制选区边框粗细,fill参数自定义填充颜色,适配不同可视化需求。

内容的提问来源于stack exchange,提问作者Bill_Lussier

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 20:22:43