How to output smooth cspline curve as a data file

user4914499 picture user4914499 · May 27, 2015 · Viewed 39.6k times · Source

Does anybody know how to extract some data of smooth cspline curve for a given data?

For instance, there is a data file which has 2 columns corresponding to x and y values. I can draw the data with smooth cpline curve by the following commands

p 'data' w lp, ""  smooth csplines

I want to extract the smooth cpline curve as an another data file.

Answer

Miguel picture Miguel · May 27, 2015

This can be done by setting a table. Consider the following data file:

0 1
1 2
2 3
3 2
4 2
5 4
6 8
7 5
8 3
9 1

The data itself and its csplines interpolation look like this:

enter image description here

To print the interpolation to a table one does the following:

set samples 100
set table "table_100"
plot "data" smooth csplines
set samples 20
set table "table_20"
plot "data" smooth csplines
unset table

set samples determines the number of points used to construct the spline curve. And you can visualize it:

set key left
plot "data" pt 7 t "Original data", \
     "table_100" w l t "Splines (100 samples)", \
     "table_20" w l t "Splines (20 samples)"

enter image description here