Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to output smooth cspline curve as a data file

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.

like image 724
user4914499 Avatar asked May 27 '15 06:05

user4914499


2 Answers

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

like image 99
Miguel Avatar answered Oct 23 '22 04:10

Miguel


Use set table 'temp.dat' to redirect the plotted data points to an external file

set table 'temp.dat'
plot 'myfile.dat' using 1:2 smooth cspline
unset table

To test it

plot 'myfile.dat' using 1:2 with points title 'original points',\
     'temp.dat' using 1:2 with lines title 'smoothed curve'
like image 39
Christoph Avatar answered Oct 23 '22 04:10

Christoph