You need to enable JavaScript to run this app. 如何在R散点图上绘制勾勒峰值的平滑上包络天际线
优惠活动
大模型
产品
解决方案
定价
更多

如何在R散点图上绘制勾勒峰值的平滑上包络天际线

非均匀散点上沿“天际线”轮廓绘制方法

场景与现有方案局限

  • 目标效果:在高密度散点数据集基础上,绘制红色连续线条勾勒散点集的上沿峰值,形成平滑的图表上轮廓效果
  • 数据特征:x坐标密集且大多为唯一值,x、y两个坐标轴方向均为非均匀分布,无规则网格结构
  • 已尝试方案的缺陷:
    • 直接逐点连线的效果极差:由于数据存在大量局部极值,几乎每个点都是局部峰或局部谷,连线后会形成杂乱无章的锯齿
    • 单纯提取极值的方法完全不具备可行性:无法得到连续平滑的上轮廓线
  • 不适配的现有图表类型:传统等高线图、贝叶斯分析场景下的天际线图,二者的定义与目标效果不匹配
  • 已验证无效的复现代码:
load("xy_lidarProfiles.RData")
plot(x, y, 
          xlab="x", ylab="y", # 坐标轴标签
          pch = 20, # 散点标记样式
          asp = 1 # x、y轴宽高比
)
lines(x, y, type="l", col = "red") # 直接连线会生成杂乱锯齿

可落地的实现方法

这类上轮廓绘制的核心逻辑是先过滤散点的局部抖动,再提取连续的上沿边界,最后做平滑处理,可根据数据特征选择以下适配方案:

  1. 分箱取上界+平滑拟合
    • 第一步:按照x坐标的整体取值范围拆分均匀宽度的分箱区间,遍历每个区间内的所有散点,取该区间内y值的最大值作为上轮廓的代表点。分箱宽度根据散点整体密度调整,保证每个区间内至少包含3-5个散点,避免离群值干扰结果。
    • 第二步:对所有分箱得到的上轮廓代表点,用loess局部加权回归做平滑拟合,直接将拟合得到的曲线用红色绘制即可。平滑程度可通过调整loess的span参数控制:需要轮廓更贴近散点峰值就调小span,需要轮廓更舒展流畅就调大span。
  2. 滑动窗口最大值法
    • 匹配散点的整体密度设置滑动窗口的宽度和步长,逐窗口遍历散点集,取每个窗口范围内的y最大值作为轮廓点,将相邻轮廓点依次连线后叠加轻量平滑过滤,就能得到连续的上轮廓线。该方法对非均匀x分布的散点适配性更强。
  3. 凸包上沿截取法
    • 针对LiDAR类高程散点数据,可以先计算散点集的凸包轮廓,剔除凸包结构中位于下沿的边,只保留从最左点到最右点、沿凸包上边缘连接的所有线段,即可得到散点集的最外上轮廓,再做轻度平滑就能达到目标效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.03 18:57:03