Rではsmooth.spline,splinefun,pracma::pchipなどでスプライン補間を行うことができるのですが、予測値自体にさほど興味は無く、標準graphicsで図に線が描ければ十分なときは、低水準描画関数xsplineを使うことができます。
線を描く
x <- -2:2 y <- c(2.58, 0.18, -0.70, 1.30, 2.43) plot(x, y) lty <- c(2, 3) col <- c("red", "blue") # like cubic B-spline xspline(x, y, shape = 1, lty = lty[1], border = col[1]) # like Catmull-Rom spline xspline(x, y, shape = -1, lty = lty[2], border = col[2]) legend("top", legend = c("B-spline", "Catmull-Rom"), lty = lty, col = col, bty = "n")

shapeは1から-1の値をとるベクトルで、要素1でも動きますが、補定のもとになる各点ごとに指定することができます。0だと直線でノットを結び、1だとB-splineのように結び、-1だとCatmull-Romのように結びます。
線の色をcolではなくborderで指定するのには注意してください。
閉曲線を描く
open = FALSEを引数につけると、ぐるっと一周する線を描くこともできます。
x <- c(-2, 0, 2, 2, 0, -2) y <- c(-2, -0.5, -2, 2, 0.5, 2) lty <- c(2, 3) col <- c("blue", "red") plot(x, y, panel.first = { xspline(x, y, shape = -1, open = FALSE, lty = lty[1], border = col[1]) xspline(x, y, shape = 1, open = FALSE, lty = lty[2], border = col[2]) }, bg = "white", pch = 21, xlim = c(-2.5, 2.5)) legend("top", legend = c("B-spline", "Catmull-Rom"), lty = lty, col = col, bty = "n")

borderで線色を、colで背景色を指定ができます。
座標を得る
draw = TRUEを引数につけると、描画せずにプロットする座標を得ることができます。
だいぶ前から存在
2007年のR 2.6.0から標準搭載なのですが、今日まで気づかなかったので反省をこめて。スプライン曲線を描きこむ機会はそうは無かったですが。