スプライン曲線とは、グラフ上の各点を滑らかに補間する線のことです。その際、3次曲線で補間する場合が多いです。
なお始点と終点は通るが、間の点を通らない曲線をB-スプラインといいます。

import numpy as np
import matplotlib.pyplot as plt
# スプライン曲線の係数k 算出
A = np.array([[1, 1, 1, 1, 0, 0, 0, 0],
[8, 4, 2, 1, 0, 0, 0, 0],
[0, 0, 0, 0, 8, 4, 2, 1],
[0, 0, 0, 0, 27, 9, 3, 1],
[12, 4, 1, 0, -12, -4, -1, 0],
[12, 4, 0, 0, -12, -4, 0, 0],
[6, 2, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 18, 2, 0, 0]])
b = np.array([2, 3, 3, -7, 0, 0, 0, 0])
k = np.linalg.solve(A, b)
# スプライン曲線の計算
f1x = np.arange(1, 2, 0.01)
f1y = k[0]*f1x**3 + k[1]*f1x**2 + k[2]*f1x + k[3]
f2x = np.arange(2, 3, 0.01)
f2y = k[4]*f2x**3 + k[5]*f2x**2 + k[6]*f2x + k[7]
# 曲線の結合
f3x = np.append(f1x,f2x)
f3y = np.append(f1y,f2y)
# スプライン曲線の描画
plt.plot(f3x , f3y)
plt.plot([1, 2, 3], [2,3,-7], 'o')
plt.show()