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

R语言usmap包绘制美国地图时如何加粗人口普查区域边界

实现方案

plot_usmap 基于ggplot2开发,你已经完成了县级细边界的人口图绘制,只需要额外叠加一层粗线图层,单独绘制四个人口普查区域之间的分界即可,不需要修改原有县级图层的设置。

操作步骤

  • 调用usmap内置的州级地理数据,数据本身已经绑定了每个州所属的普查区域(Northeast/Midwest/West/South)属性,不需要手动整理映射关系
  • 保留原有县级图层的细线设置(size=0.05),新增独立的sf图层绘制区域边界,设置更大的线宽,同时将图层填充设为透明,避免覆盖下层的县级人口配色
  • 修正原代码里的语法错误:countypop参数后多余的逗号会导致运行报错

可直接运行的完整代码

library(usmap)
library(ggplot2)

# 提取带普查区域属性的州边界数据
state_boundary <- us_map(regions = "states")

plot_usmap(data = countypop, size = 0.05, color = "black", values = "pop_2015") + 
  # 叠加普查区域粗分界层
  geom_sf(
    data = state_boundary,
    aes(group = census_region),
    color = "black",
    linewidth = 1.2, # 可根据显示需求调整粗细,数值越大线条越粗
    fill = NA # 设为透明,不遮挡下层县级数据配色
  ) +
  scale_fill_gradient2(
    low = "blue", mid = "white", high = "red",
    midpoint = median(countypop$pop_2015), # 原代码midpoint=0不符合人口均为正值的特征,改用中位数作中点配色更合理,如需保留原设置可改回0
    name = "County population",
    label = scales::comma
  )

参数调整提示

  • 如果觉得区域分界太粗/太细,直接修改linewidth的数值即可
  • 如果希望分界线条更柔和,可以把color改成深灰色比如"#333333"
  • 如果需要单独突出某个普查区域的边界,也可以在geom_sf里做条件映射单独设置线色

内容的提问来源于stack exchange,提问作者Agustín Indaco

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 01:03:35