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

如何在RStudio中将城镇级坐标转为英国区域级地图绘制?

我来帮你搞定这个问题!要把城镇级的数据汇总到英国区域级别并绘图,咱们可以按下面的步骤来操作:

步骤1:准备城镇数据并关联到对应区域

首先得把你的城镇坐标(经纬度)匹配到英国的区域单元(比如NUTS1/NUTS2级别、英格兰郡、苏格兰议会区这类),这里用sf包的空间连接功能就能实现:

  • 先把你的城镇数据转换成空间对象(sf格式):
library(sf)
library(dplyr)

# 假设你的数据框叫town_data,包含lon(经度)、lat(纬度)和需要聚合的变量(比如value)
town_sf <- st_as_sf(town_data, coords = c("lon", "lat"), crs = 4326)  # WGS84是通用的经纬度坐标系
  • 获取英国区域边界数据,推荐用rnaturalearth包快速获取官方级别的边界:
library(rnaturalearth)
# 获取英国的州/区域级边界,返回sf格式
uk_regions <- ne_states(country = "united kingdom", returnclass = "sf")

# 如果需要欧盟NUTS分级的区域(比如NUTS2),可以用nuts包:
# library(nuts)
# uk_nuts2 <- get_nuts(country = "GB", level = 2, resolution = 20, output_class = "sf")
  • 执行空间连接,把每个城镇匹配到所属的区域:
# st_within确保城镇点落在区域多边形内
town_with_region <- st_join(town_sf, uk_regions, join = st_within)
步骤2:将城镇数据聚合到区域级别

接下来按照区域分组,对城镇数据做聚合(比如求和、均值,根据你的需求调整):

region_aggregated <- town_with_region %>%
  group_by(name)  # 这里的name是边界数据里的区域名称字段,可根据实际字段名调整
  summarise(total_value = sum(value, na.rm = TRUE)) %>%
  st_drop_geometry()  # 先移除几何信息,后续再和边界合并
步骤3:合并数据并绘制区域地图

把聚合后的统计数据和区域边界合并,用ggplot2绘制 choropleth(填色)地图:

library(ggplot2)

# 合并聚合数据与区域边界
region_map_data <- uk_regions %>%
  left_join(region_aggregated, by = "name")

# 绘制地图
ggplot(region_map_data) +
  geom_sf(aes(fill = total_value)) +  # 用聚合后的数值填充区域颜色
  scale_fill_viridis_c(option = "plasma", na.value = "lightgrey") +  # 配色方案,灰色填充无数据区域
  labs(title = "英国区域级别数据地图", fill = "总数值") +
  theme_minimal() +
  theme(axis.text = element_blank(), axis.title = element_blank())  # 隐藏坐标轴,让地图更整洁
额外实用提示
  • 如果你的城镇数据只有名称没有坐标,可以用tidygeocoder包调用OpenStreetMap接口获取经纬度:
library(tidygeocoder)
town_data <- town_data %>%
  geocode(address = town_name, method = "osm", lat = lat, long = lon)
  • 想要更精准的英国官方边界(比如ONS发布的行政区边界),可以下载对应的Shapefile文件,然后用st_read()读取:
uk_ons_regions <- st_read("你的Shapefile文件路径/xxx.shp")

内容的提问来源于stack exchange,提问作者digi.data

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:54:17