在绘图中将标记添加到给定的x值

时间:2019-02-09 10:01:56

标签: r plot spline

我正在使用样条函数,我想绘制基础并添加标记以显示结的位置。我尝试使用abline(v=knots)添加一条垂直线,但结果并不理想,如果我处理许多打结,那会很分散注意力。 我在下面留下一张图像,该图像显示了我想要做什么。 这是我在代码中使用软件包bs中的splines函数的地方。

library(splines)
x <- seq(0, 1, length.out=1000)  
B <- bs(x, knots=seq(0, 1, length=20)[-c(1, 20)], Boundary.knots=c(0, 1), degree=2) 
matplot(x, B, type="l", lty=1, col="red")

这就是我想获得的(请参阅那些小的“ x”显示结的位置?)。这仅是一个示例,如果您有某种想法来显示结的位置,使结果在视觉上不会造成混乱,那么我将很高兴听到它。 enter image description here

我非常感谢您的帮助

1 个答案:

答案 0 :(得分:2)

首先,存储来自B属性的结值。然后使用低级图形功能points()添加标记,可以通过参数pch来调整符号。

knot <- c(0, attr(B, "knots"), 1)
points(knot, rep(0, length(knot)), pch = "x")

enter image description here