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

R使用ggplot为英国地方当局分级统计图添加点位位置异常求助

问题根源

你使用的英国地方行政区shapefile默认采用英国国家格网投影(EPSG:27700),坐标系单位为米;而你输入的点位是WGS84坐标系下的经纬度数据(单位为度,EPSG:4326),二者坐标系不统一,因此ggplot无法识别点位的正确空间位置,导致点位全部堆积在地图左下角。

解决方案

推荐优先统一将点位转换为和底图一致的投影,避免底图变形,操作代码如下:

# 加载依赖包(未安装的话先执行 install.packages(c("sf","dplyr")) 安装)
library(sf)
library(dplyr)
library(ggplot2)

# 构造点位数据并转换为和底图匹配的空间对象
sites <- data.frame(lat = c(54.7), long = c(-1.27)) %>%
  # 指定原始点位为WGS84经纬度坐标系
  st_as_sf(coords = c("long", "lat"), crs = 4326) %>%
  # 转换为和底图完全一致的坐标系
  st_transform(crs = st_crs(mymap))

# 绘图,统一使用geom_sf绘制空间对象
ggplot() +
  geom_sf(data = map_and_data, aes(fill = Fuel_Poverty), lwd = 0.1) +
  geom_sf(data = sites, size = 3, shape = 21, fill = "red") +
  theme_void() +
  scale_fill_gradient2(low = "#005abb", high = "#a50026", midpoint = 12, na.value = "#808080")

如果你需要叠加邮政编码点位,可以使用PostcodesioR包调用英国公共邮政编码接口,批量将邮政编码转换为经纬度后,再按上述步骤转换坐标系叠加即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 23:45:06