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

R空间数据计算各点到最大值点的欧氏距离并基于lm拟合绘图

具体实现步骤

你已经完成了数据框到SpatialPointsDataFrame的转换,后续操作可按以下步骤执行:

1. 提取variable取值最高的点位

# 取最大值点位的索引
max_idx <- which.max(dat$variable)
# 提取最大值点的坐标
max_point <- coordinates(dat)[max_idx, ]

2. 批量计算所有点到最大值点的欧氏距离

直接使用sp包内置的spDistsN1函数即可实现,设置longlat = FALSE即可计算平面欧氏距离,符合你室内点位无CRS的需求:

library(sp)
# 计算距离并写入空间对象的属性表
dat$dist_to_max <- spDistsN1(dat, max_point, longlat = FALSE)

执行后你可以通过dat@data查看新增的距离列。

3. 拟合距离与variable的线性关系

直接调用lm()即可:

# 拟合线性模型
lm_fit <- lm(variable ~ dist_to_max, data = dat)
# 查看拟合结果
summary(lm_fit)

4. base绘图输出结果

# 绘制散点图
plot(
  x = dat$dist_to_max,
  y = dat$variable,
  xlab = "到最高值点的欧氏距离",
  ylab = "variable取值",
  pch = 16,
  col = "steelblue",
  main = "variable与距离的线性关系"
)
# 添加拟合线
abline(lm_fit, col = "darkred", lwd = 2)
# 可选:添加拟合公式与R²标注
legend(
  "topright",
  legend = c(
    paste0("拟合线:y = ", round(coef(lm_fit)[2], 2), "x + ", round(coef(lm_fit)[1], 2)),
    paste0("R² = ", round(summary(lm_fit)$r.squared, 3))
  ),
  lty = c(1, NA),
  col = c("darkred", NA),
  bty = "n"
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 22:15:10