Добавьте маркеры к заданным значениям x на графике - PullRequest
0 голосов
/ 09 февраля 2019

Я работаю со сплайн-функциями и хочу построить базис и добавить маркеры, показывающие положение узлов.Я попытался добавить вертикальную линию, используя 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 голосов
/ 09 февраля 2019

Сначала сохраните значения узла из атрибутов B.А затем используйте низкоуровневую графическую функцию points(), чтобы добавить маркеры, символы которых можно отрегулировать с помощью аргумента pch.

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

enter image description here

...