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

样条函数基绘图:添加节点位置标记的优化方案咨询

简洁展示样条节点位置的方案

我完全懂你说的痛点——节点多的时候用竖线标记确实会把图弄得乱糟糟的,用小"x"标记节点是个清爽太多的选择。这里有个简单易实现的方案,既能清晰标注所有节点位置,又不会干扰基函数曲线的展示:

改进后的代码示例

library(splines)

# 生成数据与样条基函数
x <- seq(0, 1, length.out=1000)
knots <- seq(0, 1, length=20)[-c(1, 20)]  # 提取内部节点
B <- bs(x, knots=knots, Boundary.knots=c(0, 1), degree=2)

# 绘制基函数曲线
matplot(x, B, type="l", lty=1, col="red", ylab="Basis Functions", xlab="x")

# 在绘图区域底部添加整齐的节点标记(小"x")
points(knots, rep(par("usr")[3], length(knots)), pch="x", col="blue", cex=0.8)
# 要是想把标记放在顶部,把par("usr")[3]换成par("usr")[4]就行

代码细节说明

  • par("usr")[3] 会自动获取当前绘图区域的底部y坐标,这样所有节点标记都会整齐对齐在图的最下方,完全不会和曲线重叠
  • 用pch="x"指定标记形状,cex=0.8缩小标记尺寸,避免过于突兀;选蓝色(和红色曲线形成对比),既能看清节点,又不会抢曲线的风头
  • 如果觉得底部标记还是有点靠近曲线,可以稍微往下挪一点,比如用 par("usr")[3] - 0.05*(par("usr")[4]-par("usr")[3]) 作为y坐标

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 09:21:19