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

如何在R语言的美国地图中绘制多州组合的边界线?

实现多州组合的整体边界绘制(基于ggplot2)

核心思路

用usmap获取目标州的地理数据,通过sf包的空间合并功能生成多州的整体边界,再用ggplot2叠加绘制粗边界效果。

步骤与代码

  1. 加载所需包
library(usmap)
library(ggplot2)
library(sf)
library(dplyr)
  1. 获取目标州的地理数据并转换为sf格式
# 定义目标州缩写,示例为第五巡回法院的TX、LA、MS
target_states <- c("TX", "LA", "MS")

# 获取州级地图数据并筛选目标州
state_data <- get_usmap(regions = "states", include = target_states) %>%
  as_sf()  # 转换为sf对象方便空间操作
  1. 合并多州多边形,生成整体边界
# 合并所有目标州的多边形,得到联合区域
union_boundary <- state_data %>%
  st_union() %>%
  st_sf()  # 转换为可用于ggplot的sf对象
  1. 用ggplot2绘制地图与粗边界
ggplot() +
  # 绘制目标州的填充底图
  geom_sf(data = state_data, fill = "#f0f0f0", color = "#cccccc") +
  # 叠加整体粗边界,设置颜色和线宽
  geom_sf(data = union_boundary, fill = NA, color = "#000000", linewidth = 1.5) +
  # 适配usmap的坐标系
  coord_sf(crs = usmap_crs()) +
  # 移除默认坐标轴,简化地图样式
  theme_void()

补充说明

  • 若要绘制其他联邦巡回法院辖区,只需替换target_states为对应辖区的州缩写即可。
  • 之前用alphahull失败多是因为未统一空间格式或参数设置不当,st_union是更直接的空间合并方式,无需手动调整复杂参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 13:33:14