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

ggplot2绘制英国地震点位报错:如何解决地图叠加点位异常

问题分析与解决方案

你的两个错误都是ggplot2的美学映射继承逻辑和固定属性设置方式导致的,咱们一步步拆解解决:

错误1:Error: Aesthetics must be either length 1 or the same as the data (990): x, y

这个问题出在你把固定样式(colour="red"和size=2)放进了aes()里。aes()的核心作用是把数据列映射到可视化属性(比如后续要做的震级对应点大小),而统一的颜色、固定尺寸这类静态样式,应该直接作为geom_point()的参数,放在aes()外面。

当你把colour="red"塞进aes()时,ggplot会把它当成一个变量名,试图在你的table数据集里找名为red的列——显然不存在,于是它会把这个字符串当作长度为1的分组变量,和你的25行数据长度不匹配(或者和基础地图的990行数据混淆),最终触发报错。

错误2:Error in FUN(X[[i]], ...) : object 'group' not found

这个错误源于ggplot的美学继承机制:你的基础地图uk在aes()里设置了group=group(用来给多边形分组,保证英国地图正确绘制),而geom_point()默认会继承父图层的所有美学映射。当你用table数据绘制点时,ggplot会自动尝试在table里找group列,但你的数据集里根本没有这个字段,自然会报错。


修复后的完整代码

我调整了两处关键问题,同时提前帮你实现了「震级对应点大小」的需求:

library(ggplot2)
library(maps)

# 你的地震数据集
table <- data.frame(
  long2 = c(-2.62, 1.94, -0.24, -2.34, -3.16, -0.24, -4.11, -0.24, -0.24, -5.70, -2.40, -1.19, -1.02, -4.24, -3.23, -2.06, 1.63, -5.24, -5.86, -3.22, -0.24, -0.24, -4.01, -5.18, -1.95),
  lat2 = c(52.84, 57.03, 51.16, 53.34, 55.73, 51.16, 53.03, 51.16, 51.16, 57.08, 53.00, 53.35, 53.84, 52.62, 54.24, 52.62, 54.96, 56.05, 55.84, 54.23, 51.16, 51.16, 55.92, 50.08, 54.44),
  mag1 = c(1.9, 4.2, 0.6, 0.8, 2.0, 1.0, 1.5, 0.2, 1.1, 1.6, 1.4, 1.2, 1.7, 0.8, 0.3, 1.0, 1.7, 0.7, 1.3, 0.3, -1.4, -0.7, 0.3, 2.3, 1.0)
)

# 生成英国地图多边形数据
w <- map_data("world", region = "uk")

# 绘制基础英国地图
uk <- ggplot(data = w, aes(x = long, y = lat, group = group)) +
  geom_polygon(fill = "seagreen2", colour = "white") +
  coord_map()

# 添加地震点位(修复后的核心代码)
uk +
  geom_point(
    data = table,
    aes(x = long2, y = lat2, size = mag1),  # 仅保留数据映射的美学(震级对应点大小)
    colour = "red",  # 固定颜色移到aes()外
    position = "jitter",
    alpha = 0.5,
    inherit.aes = FALSE  # 禁止继承父图层的group等无关美学
  ) +
  labs(size = "震级")  # 给大小图例添加清晰标签

额外小提示

  • 如果你不想用inherit.aes=FALSE,也可以在geom_point()的aes()里显式写group=NULL,同样能避免继承父图层的group映射
  • 你的数据里有几个负的震级值(比如-1.4),如果是录入错误建议提前清洗,否则对应的点会非常小甚至难以观察

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:11:33