Skip to content

Instantly share code, notes, and snippets.

@ev-br
Created February 23, 2024 15:57
Show Gist options
  • Save ev-br/18956b1d638e950e6b987eeb4beb0b2c to your computer and use it in GitHub Desktop.
Save ev-br/18956b1d638e950e6b987eeb4beb0b2c to your computer and use it in GitHub Desktop.
spline-fit-example-2
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"id": "e9e31ca1-440c-4fe1-ac6e-4aca5adaa8d4",
"metadata": {},
"source": [
"# Original\n",
"\n",
"http://vadym-pasko.com/blog/2015/03/06/spline-approx-scipy.html"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "6274b27b-f5c1-482a-8ac8-af999a3792ca",
"metadata": {},
"outputs": [],
"source": [
"# http://vadym-pasko.com/examples/spline-approx-scipy/example2-data.html\n",
"\n",
"# Digitized by GSYS2.4.3\n",
"# Date = 27.Feb.2015, 17:49:53\n",
"# Number of data = 40\n",
"# set xrange[0.0, 6.0]\n",
"# set yrange[0.0, 0.6] \n",
"# MD5Fig : 1227aee4326e17ca1207852c48e36783\n",
"# Axis_X : 3fb226357e16ece53fed22ef6439454c3fed40f8dd8aff4e3fed22ef6439454c\n",
"# Axis_Y : 3fb2a07a44c6afc33fed47969f36683c3fb2a07a44c6afc33fa80dbeb61eed1a\n",
"# x y\n",
"datastr = \"\"\"\n",
"1.062E-01 4.794E-02\n",
"2.788E-01 5.876E-02\n",
"4.779E-01 7.268E-02\n",
"7.301E-01 8.969E-02\n",
"9.292E-01 1.067E-01\n",
"1.088E+00 1.222E-01\n",
"1.227E+00 1.346E-01\n",
"1.336E+00 1.498E-01\n",
"1.473E+00 1.649E-01\n",
"1.581E+00 1.801E-01\n",
"1.704E+00 1.977E-01\n",
"1.805E+00 2.179E-01\n",
"1.877E+00 2.364E-01\n",
"1.935E+00 2.557E-01\n",
"2.007E+00 2.751E-01\n",
"2.086E+00 2.919E-01\n",
"2.216E+00 3.037E-01\n",
"2.389E+00 3.070E-01\n",
"2.534E+00 2.995E-01\n",
"2.656E+00 2.885E-01\n",
"2.772E+00 2.742E-01\n",
"2.887E+00 2.583E-01\n",
"3.024E+00 2.414E-01\n",
"3.161E+00 2.288E-01\n",
"3.284E+00 2.179E-01\n",
"3.436E+00 2.070E-01\n",
"3.602E+00 1.960E-01\n",
"3.811E+00 1.834E-01\n",
"3.977E+00 1.733E-01\n",
"4.143E+00 1.624E-01\n",
"4.323E+00 1.506E-01\n",
"4.525E+00 1.405E-01\n",
"4.720E+00 1.313E-01\n",
"4.951E+00 1.204E-01\n",
"5.167E+00 1.094E-01\n",
"5.355E+00 1.019E-01\n",
"5.507E+00 9.428E-02\n",
"5.687E+00 8.756E-02\n",
"5.875E+00 7.999E-02\n",
"6.026E+00 7.410E-02\n",
"\"\"\""
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "cd2dfe39-41f7-40dd-b16e-4e3f21e8c6db",
"metadata": {},
"outputs": [],
"source": [
"def readXY(datastr):\n",
" X, Y = [], []\n",
" for line in datastr.split(\"\\n\"):\n",
" if line:\n",
" x, y = [float(z) for z in line.split()]\n",
" X.append(x)\n",
" Y.append(y)\n",
" return X, Y\n",
" \n",
"X, Y = readXY(datastr)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "eee6d40d-c0cc-4b4e-b5c8-90a5f64cb814",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7fc5f3a91660>]"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"%matplotlib inline\n",
"\n",
"plt.plot(X, Y, 'o')"
]
},
{
"cell_type": "markdown",
"id": "35f15cfa-f44e-405e-ba46-77a947ae26e9",
"metadata": {},
"source": [
"# `make_lsq_spline`: prefer to `LSQUnivariateSpline`"
]
},
{
"cell_type": "code",
"execution_count": 26,
"id": "77eebea4-bc0b-4ac8-9695-5123f1b147f3",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7fc5eb113580>]"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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+vfvz6FDh6wOLSDt2rWLtLQ0OnTowHvvvcf48eP57W9/yyuvvGJZTCHTrbm6bDabx33DMMqdE6mJu+++m6+++oo1a9ZYHUpA69ixI5mZmRw5coS33nqLm2++mU8++URJSwX27dvHpEmTWLlyJVFRUVaHExSGDh1adty1a1dSU1Np3749//3vf5kyZYqFkQUmt9tNr169+Nvf/gZAz549+frrr0lLS2Ps2LGWxFRvR1hatGiBw+EoN5qSm5tbbtRFpLruuecelixZwkcffUSbNm2sDiegRUREcN5559GrVy+mT59O9+7defLJJ60OKyCtX7+e3NxcUlJSCAsLIywsjE8++YSnnnqKsLAwXC6X1SEGvIYNG9K1a1e2b99udSgBKS4urtwfC507d7Z0U0q9TVgiIiJISUkhPT3d43x6ejr9+/e3KCoJFYZhcPfdd/P222/z4YcfkpCQYHVIQccwDIqKiqwOIyBdeumlbN68mczMzLJbr169uOmmm8jMzMThcFgdYsArKipi27ZtxMXFWR1KQBowYEC5Ugzfffcd8fHxFkVUz6eEpkyZwpgxY+jVqxepqanMnj2brKwsxo8fb3VoAefo0aPs2LGj7P7u3bvJzMykWbNmtGvXzsLIAtPEiRN5/fXXWbx4MY0bNy4byXM6nTRo0MDi6ALPH//4R4YOHUrbtm0pKChg/vz5fPzxx6xYscLq0AJS48aNy62HatiwIc2bN9c6qUrcd999DBs2jHbt2pGbm8tf/vIX8vPzufnmm60OLSDde++99O/fn7/97W+MHDmSdevWMXv2bGbPnm1dUEY99+yzzxrx8fFGRESEkZycbHzyySdWhxSQPvroIwMod7v55putDi0gVfReAcbLL79sdWgB6dZbby37/7Bly5bGpZdeaqxcudLqsILKRRddZEyaNMnqMALWqFGjjLi4OCM8PNxo3bq1cc011xhff/211WEFtKVLlxpJSUlGZGSk0alTJ2P27NmWxlOv67CIiIhIcKi3a1hEREQkeChhERERkYCnhEVEREQCnhIWERERCXhKWERERCTgKWERERGRgKeERURERAKeEhYREREJeEpYREREJOApYREREZGAp4RFREREAp4SFhEREQl4/w8XN6fLAgsEGQAAAABJRU5ErkJggg==",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from scipy.interpolate import make_lsq_spline\n",
"\n",
"k = 3\n",
"w = [3] + [1]*(len(X) - 2) + [3]\n",
"\n",
"nknots = 6\n",
"t = np.r_[(X[0],)*(k+1), np.linspace(X[1], X[-2], nknots), (X[-1],)*(k+1)]\n",
"\n",
"spl = make_lsq_spline(X, Y, t=t, w=w)\n",
"\n",
"plt.plot(X, Y, 'o')\n",
"plt.plot(X, spl(X), '--')"
]
},
{
"cell_type": "markdown",
"id": "55b7033e-b7fb-4a76-b786-a5d105bcff14",
"metadata": {},
"source": [
"# Smoothing splines\n",
"\n",
"Can use `splrep` with varying values of `s`.\n",
"\n",
"For nicer API, will use `make_splrep` from https://github.com/scipy/scipy/pull/19970."
]
},
{
"cell_type": "code",
"execution_count": 31,
"id": "1569421d-57a2-4b01-8cf9-6150c90a90bc",
"metadata": {},
"outputs": [],
"source": [
"from scipy.interpolate import make_splrep, generate_knots"
]
},
{
"cell_type": "code",
"execution_count": 47,
"id": "c28e522e-d37a-4eed-8064-327b4dc19553",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7fc5e914cdc0>"
]
},
"execution_count": 47,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"s = 5e-4\n",
"\n",
"xx = np.linspace(X[0], X[-1], 101)\n",
"\n",
"for t in generate_knots(X, np.asarray(Y), k=3, s=s):\n",
" spl = make_splrep(X, Y, t=t, k=3, s=s)\n",
" plt.plot(xx, spl(xx), '--', label=f\"n={len(t)}\")\n",
" \n",
"plt.plot(X, Y, 'o')\n",
"plt.legend()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "4acf54b6-c371-4065-9546-faaeee4a29ca",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.10"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment