GNUplot: część 17. - Wygładzanie wykresów
W tej części poradnika postaram się pokazać jak możemy w programie GNUplot wygładzać wykresy powstałe z danych pomiarowych.
Jakie mamy możliwości?
Mamy do dyspozycji trzy metody wygładzenia wykresu spośród których możemy wybrać tę najbardziej odpowiadającą naszym potrzebom. Te metody to bezier (krzywa Beziera), csplines oraz acsplines. Co je cechuje?- bezier - aproksymuje linię trendu dla danych punktów
- csplines - interpoluje funkcję między danymi punktami oraz przechodzi przez nie
- acsplines - aproksymuje dane z wagą dla każdego z punktów
Najprościej oczywiście będzie pokazać różnice między nimi na konkretnym przykładzie, ale to za chwilkę.
Jak użyć tych metod?
Wygładzanie funkcji jest niezwykle proste. Do funkcji plot wystarczy dołączyć smooth <metoda wygładzenia>, np.
Może nieco konkretniejszy przykład?
Żeby dokładniej zobrazować różnicę pomiędzy metodami wygładzania, proponuję stworzyć plik dane.txt zawierający poniższą treść:1 1.1 1 2 1.8 1 3 1.5 1 4 3.2 1 5 3.5 1 6 2 1
Wydajmy więc w GNUplocie poniższe polecenie:
plot [][1:5]"dane.txt" with points t "Dane", "dane.txt" smooth bezier t "Krzywa Beziera", "dane.txt" smooth csplines t "csplines", "dane.txt" using smooth acsplines t "acsplines"
plot [][1:5]"dane.txt" with points t "Dane",\
"dane.txt" smooth bezier t "Krzywa Beziera",\
"dane.txt" smooth csplines t "csplines",\
"dane.txt" using smooth acsplines t "acsplines"
W naszym pliku z danymi dopisaliśmy trzecią kolumnę zawierającą same jedynki. Po co? Tak jak wspomniałem, metoda acsplines aproksymuje dane z wagami dla każdego punktu i ta trzecia kolumna to właśnie są wagi, w naszym przypadku - jednakowe dla wszystkich punktów.
Zachęcam do po próbowania sobie tych różnych metod, w różnych przypadkach, aby lepiej poczuć różnicę między nimi i umiejętniej dobierać stosowną metodę do danego przypadku.
Komentarze (0) - Nikt jeszcze nie komentował - bądź pierwszy!