2015-05-27 24 views
8

Czy ktoś wie, jak wyodrębnić niektóre dane z gładkiej krzywej cspline dla danych?Jak wyprowadzić gładką krzywą cspline jako plik danych

Na przykład istnieje plik danych, który ma 2 kolumny odpowiadające wartościom x i y. Mogę wyciągnąć dane z gładkiej krzywej cpline przez następujące polecenia

p 'data' w lp, "" smooth csplines 

chcę wyodrębnić gładką krzywą cpline jako plik innego danych.

Odpowiedz

11

Można to zrobić poprzez ustawienie table. Rozważmy następujący plik danych:

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

Sam i jego csplines interpolacja wyglądać dane:

enter image description here

Aby wydrukować interpolacji do jednej tabeli wykonuje następujące operacje:

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 określa liczbę punktów użytych do zbudowania krzywej splajnu. I można go wizualizować:

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

4

Zastosowanie set table 'temp.dat' przekierować na wykresie punktów danych do pliku zewnętrznego

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

przetestować go

plot 'myfile.dat' using 1:2 with points title 'original points',\ 
    'temp.dat' using 1:2 with lines title 'smoothed curve' 
+0

Zła synchronizacja :-D pisałem moją odpowiedź, kiedy pisał ten. Nie można cię pokonać! – Miguel

+0

@Miguel :) Przepraszam, myślę, że powinienem trochę się wycofać, aby nie rozproszyć większości innych osób odpowiadających ... Miło, że dodałeś kilka przykładów do swojej odpowiedzi. Szukałem duplikatu pytania, ale nie znalazłem odpowiedniego. Teraz mamy twoją odpowiedź jako miłe odniesienie – Christoph

+0

Cóż, przynajmniej z tagiem gnuplot ma się szansę odpowiedzieć. Spróbuj pierwszej odpowiedzi na pytanie w pythonie ... – Miguel