Wizualizacja danych - Gnuplot

Podobne dokumenty
Wizualizacja danych 2D i 3D - Gnuplot

Wizualizacja danych 2D i 3D - Gnuplot

gnuplot - wprowadzenie

Wizualizacja danych 2D i 3D - Gnuplot

gnuplot czyli jak zrobić wykres, żeby się nie narobić

Wprowadzenie do programu gnuplot

GNUPLOT Wprowadzenie. dr inż. Marzena Tefelska Wydział Fizyki Politechnika Warszawska 2015

GnuPlot. Program do tworzenia wykresów. Zbigniew Koza. Uniwersytet Wrocławski Instytut Fizyki Teoretycznej. GnuPlot p. 1/30

Wstęp do gnuplota. Dominik Perykasza. 1 Wstęp 2. 2 Rysowanie wykresów Modyfikacja parametrów wykresu Modyfikowanie styli...

Wizualizacja danych 2D i 3D - Gnuplot

Analizowanie danych. Katarzyna Grzelak. listopad K.Grzelak (IFD UW) 1 / 24

Gnuplot. narzędzie do tworzenia wykresów

S88 Badanie rzutu kostką sześcienną

zajęcia 2 Definiowanie wektorów:

Pracownia wykorzystania zasobów internetowych

Wykorzystanie programów komputerowych do obliczeń matematycznych

Aproksymacja funkcji a regresja symboliczna

Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje

Laboratorium 1b Operacje na macierzach oraz obliczenia symboliczne

MATLAB ŚRODOWISKO MATLABA OPIS, PODSTAWY

Język skryptowy: Laboratorium 1. Wprowadzenie do języka Python

Qtiplot. dr Magdalena Posiadała-Zezula

Ćwiczenia Skopiować do swojego folderu plik cwiczenia-kl.ii.xls, a następnie zmienić jego nazwę na imię i nazwisko ucznia

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6

Wykorzystanie programów komputerowych do obliczeń matematycznych, cz. 2/2

Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS

Technologia Informacyjna

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?

Przykład 1 -->s="hello World!" s = Hello World! -->disp(s) Hello World!

Elementy metod numerycznych - zajęcia 9

Treści programowe. Matematyka 1. Efekty kształcenia. Literatura. Warunki zaliczenia. Ogólne własności funkcji. Definicja 1. Funkcje elementarne.

Elementy termodynamiki atmosfery i fizyki chmur Ćwiczenia 01

, h(x) = sin(2x) w przedziale [ 2π, 2π].

PRZEWODNIK PO PRZEDMIOCIE

Obliczenia iteracyjne

Metody numeryczne I Równania nieliniowe

Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki

Laboratorium Algorytmy Obliczeniowe. Lab. 9 Prezentacja wyników w Matlabie

Wartości x-ów : Wartości x ów można w Scilabie zdefiniować na kilka sposobów, wpisując odpowiednie polecenie na konsoli.

Funkcje: wielomianowa, wykładnicza, logarytmiczna wykład 2

Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS

Podstawy Informatyki dla Nauczyciela

Logarytmy. Funkcje logarytmiczna i wykładnicza. Równania i nierówności wykładnicze i logarytmiczne.

Funkcje elementarne. Matematyka 1

Wymagania kl. 3. Zakres podstawowy i rozszerzony

1 Funkcje elementarne

Treści programowe. Matematyka. Literatura. Warunki zaliczenia. Funkcje elementarne. Katarzyna Trąbka-Więcław

Układy stochastyczne

Funkcje. Część pierwsza. Zbigniew Koza. Wydział Fizyki i Astronomii

DOPASOWYWANIE KRZYWYCH

Wykorzystanie programów komputerowych do obliczeń matematycznych, cz. 2/2

Funkcje: wielomianowa, wykładnicza, logarytmiczna wykład 3

2. LICZBY RZECZYWISTE Własności liczb całkowitych Liczby rzeczywiste Procenty... 24

Podstawy Informatyki 1. Laboratorium 1

Metody Przetwarzania Danych Meteorologicznych Ćwiczenia 01

Przykład 1: Funkcja jest obiektem, przypisanie funkcji o nazwie function() do zmiennej o nazwie funkcja1

Klasa 1 technikum. Poniżej przedstawiony został podział wymagań na poszczególne oceny szkolne:

Wstęp do Programowania potok funkcyjny

Wstęp do analizy matematycznej

Czym jest ciąg? a 1, a 2, lub. (a n ), n = 1,2,

Metody Numeryczne. Laboratorium 1. Wstęp do programu Matlab

Analiza matematyczna Analiza zmiennych dyskretnych: ciągi i szeregi liczbowe

MATLAB Podstawowe polecenia

Wizualizacja danych - Gnuplot

WPROWADZENIE DO ŚRODOWISKA SCILAB

Re +/- Im i lub Re +/- Im j

Laboratorium nr 4: Arytmetyka liczb zespolonych

W dowolnym momencie można zmienić typ wskaźnika.

5. Funkcje w standardzie SPICE i w programie Probe. Parametry globalne. Funkcje wbudowane w programie PSPICE pakietu MicroSim

ECDL/ICDL Arkusze kalkulacyjne Moduł B4 Sylabus - wersja 5.0

Metodyka wykonania kartogramu z podziałem na klasy wg punktów charakterystycznych wraz z opracowaniem kartogramicznej legendy.

Projekt Era inżyniera pewna lokata na przyszłość jest współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

PRZEDMIOTOWY SYSTEM OCENIANIA PROSTO DO MATURY KLASA 1 ZAKRES PODSTAWOWY

3. FUNKCJA LINIOWA. gdzie ; ół,.

GNUPLOT Wprowadzenie. dr inż. Marzena Sala-Tefelska Wydział Fizyki Politechnika Warszawska 2017

ARKUSZ KALKULACYJNY komórka

Technikum Nr 2 im. gen. Mieczysława Smorawińskiego w Zespole Szkół Ekonomicznych w Kaliszu

Usługi Informatyczne "SZANSA" - Gabriela Ciszyńska-Matuszek ul. Świerkowa 25, Bielsko-Biała

Oznacza to, że chcemy znaleźć minimum, a właściwie wartość najmniejszą funkcji

CHARAKTERYSTYKI CZĘSTOTLIWOŚCIOWE

Wizualizacja danych 2D i 3D - Gnuplot

Podstawowe operacje graficzne.

Projekt Era inżyniera pewna lokata na przyszłość jest współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

Matlab MATrix LABoratory Mathworks Inc.

PORÓWNANIE TREŚCI ZAWARTYCH W OBOWIĄZUJĄCYCH STANDARDACH EGZAMINACYJNYCH Z TREŚCIAMI NOWEJ PODSTAWY PROGRAMOWEJ

Liczby pierwsze rozmieszczenie. Liczby pierwsze rozmieszczenie

ARKUSZ KALKULACYJNY MICROSOFT EXCEL

Funkcje liniowe i wieloliniowe w praktyce szkolnej. Opracowanie : mgr inż. Renata Rzepińska

Podstawy programowania Laboratorium. Ćwiczenie 2 Programowanie strukturalne podstawowe rodzaje instrukcji

1 Programowanie w matlabie - skrypty i funkcje

Scilab - podstawy. Wersje instalacyjne programu Scilab mogą zostać pobrane ze strony

Pracownia fizyczna i elektroniczna (w tym komputerowa)

Podstawy analizy matematycznej II

Ćwiczenie 4. Matlab - funkcje, wielomiany, obliczenia symboliczne

Próbny egzamin z matematyki dla uczniów klas II LO i III Technikum. w roku szkolnym 2012/2013

WYDZIAŁ ELEKTROTECHNIKI, AUTOMATYKI I INFORMATYKI INSTYTUT AUTOMATYKI I INFORMATYKI KIERUNEK AUTOMATYKA I ROBOTYKA STUDIA STACJONARNE I STOPNIA

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

4. Funkcje. Przykłady

Transkrypt:

Wizualizacja danych - Gnuplot dr hab. Bożena Woźna-Szcześniak Akademia im. Jan Długosza bwozna@gmail.com Laboratorium 3

O czym dziś będzie mowa Kreślenia nieposortowanych plików danych Wygładzanie zaburzonych danych Matematyka z gnuplotem Zmienne i funkcje definiowane przez użytkownika Proste przekształcenia danych Pseudokolumny

Kreślenia nieposortowanych plików danych Załóżmy, że mamy taki plik z nieposortowanymi danymi 1970 1 1974 4 1979 4 1971 3 # out of order! 1973 6 1978 5 1980 2

Kreślenia nieposortowanych plików danych Wykres technika znana nam do tej pory: gnuplot> plot "jumbled.dat" u 1:2 w lp

Kreślenia nieposortowanych plików danych Wykres z opcja smooth unique: gnuplot> plot "jumbled.dat" u 1:2 smooth unique w lp

Kreślenia nieposortowanych plików danych Wykres z opcja smooth frequency: gnuplot> plot "jumbled.dat" u 1:2 smooth frequency w lp

Kreślenia nieposortowanych plików danych Dyrektywa smooth komendy plot jest prostym narzędziem do kreślenia wykresów na podstawie nieuporzadkowanych plików danych. Dyrektywa smooth pobiera jeden z następujacych parametrów: unique, frequency, bezier, sbezier, csplines, acsplines. Dyrektywa unique sortuje wartości wybrane przez dyrektywę using dla osi X. Jeśli dowolna wartość x występuje więcej niż jeden raz, to zostanie ona zastapiona przez jeden punkt danych z średnia z odpowiadajacych wartości y. Dyrektywa frequency działa w ten sam sposób, ale jeśli dowolna wartość x występuje więcej niż jeden raz, to zostanie ona zastapiona przez jeden punkt danych, który stanowi sumę wszystkich wartości y dla każdej wartości x.

Kreślenia nieposortowanych plików danych # Temperatura dla trzech miast. # Kody miast (kolumna 3): #Warszawa (=1), Katowice (=2), Czestochowa (=3) # Format: Rok Temperatura Miasto #... Warszawa, Katowice 1990 32 1 1990 29 2 1991 33 1 1991 27 2 1992 31 1 1992 29 2 1993 32 1 1993 26 2 #... Czestochowa 1991 27 3 1993 29 3

Kreślenia nieposortowanych plików danych Wykres z opcja smooth unique: gnuplot> plot [1989:1994] "messy.dat" u 1:2 smooth unique w lp

Kreślenia nieposortowanych plików danych Wykres z opcja smooth unique i bez niej: gnuplot> plot [1989:1994][25:34] "messy.dat" u 1:2 smooth unique w lp, "" u 1:2 w p Powyższa komenda kreśli zarówno oryginalne dane punktów (niepołaczone), jaki i trend średniej temperatury.

Wygładzanie zaburzonych danych Pozostałe rodzaje dyrektywy smooth generuja wykresy z wygładzonych danych, tzn. aby wygenerować wykres zastępuje się dane oryginalne danymi z opisu matematycznego. bezier - oblicza i wykreśla przybliżenia Béziera rzędu n (gdzie n jest liczba danych). Przybliżenie gwarantuje, że krzywa przechodzi przez punkt reprezentujacy pierwsza i ostatnie dana oryginalna, natomiast nie gwarantuje że przechodzi przez każdy z wewnętrznych oryginalnych punktów. Powstała krzywa jest zazwyczaj bardzo gładka. sbezier - najpierw stosuje nietypowa transformację do danych, a następnie oblicza i wykreśla aproksymację Béziera dla przekształconych wyników.

Wygładzanie zaburzonych danych csplines - stosuje transformację unique, a następnie oblicza wartość pewnej funkcji spline trzeciego rzędu (będac a liczba naturalna) z wyników transformacji i kreśli tak wygładzone dane. Powstała krzywa przechodzi przez dokładnie wszystkich dane. W przeciwieństwie do krzywej Béziera (która definiowana jest dla całego zbioru danych), funkcje splines definiowane sa lokalnie (pomiędzy dwoma kolejnymi punktami danych) i łaczone płynnie w tych punktach. acsplines - stosuje transformację unique do oryginalnych danych, a następnie oblicza ważona przybliżona funkcję splines trzeciego rzędu. Waga jest obowiazkowym trzecim argumentem dyrektywy using.

Wygładzanie zaburzonych danych #akcje.dat # Srednia cena akcji w dolarach za jedna akcje na rok #ROK ABC XYZ 1975 49 162 1976 52 144 1977 67 140 1978 53 122 1979 67 125 1980 46 117 1981 60 116 1982 50 113 1983 66 96 1984 70 101 1985 91 93 1986 133 92 1987 127 95 1988 136 79 1989 154 78 1990 127 85 1991 147 71 1992 146 54 1993 133 51 1994 144 49 1995 158 43

Wygładzanie zaburzonych danych Wykres danych oryginalnych bez wygładzenia gnuplot> plot "akcje.dat" u 1:2 w lp

Wygładzanie zaburzonych danych Wykres bez i z wygładzeniem gnuplot> set key left top gnuplot> plot "akcje.dat" u 1:2 title "ABC" w lp, "" u 1:2 title "bezier" smooth bezier, "" u 1:2 title "csplines" smooth csplines

Wygładzanie zaburzonych danych Ważona aproksymacja spline (czyli smooth acsplines) modyfikuje lokalny charakter aproksymacji spline. Nie wymaga się już w niej, aby krzywa interpolacyjna przechodziła przez każdy punkt reprezentujacy dana w rozważanym zbiorze. To czy punkt jest brany pod uwage zależy od jego wagi. Waga jest pobierana z obowi azkowej trzeciej kolumny w specyfikacji dyrektywy using i może być albo taka sama dla wszystkich punktów z zestawu danych lub zmieniać się w zależnoścu od punktu.

Wygładzanie zaburzonych danych plot [1975:1995][40:160] "akcje.dat" using 1:2 title "ABC" with points, "" using 1:2:(1) title "acs 1" smooth acsplines with lines, "" using 1:2:(1/50.) title "acs 2" smooth acsplines with lines, "" using 1:2:(50) title "acs 3" smooth acsplines with lines, "" using 1:2:(1/10000.) title "acs 4" smooth acsplines with lines inny sposób plot [1975:1995][40:160] "akcje.dat" u 1:2 t "ABC" w "" u 1:2:(1) t "acs 1" smooth acsplines w l,\ "" u 1:2:(1/50.) t "acs 2" smooth acsplines w l,\ "" u 1:2:(50) t "acs 3" smooth acsplines w l,\ "" u 1:2:(1/10000.) t "acs 4" smooth acsplines w l

Wygładzanie zaburzonych danych 160 140 120 ABC acs 1 acs 2 acs 3 acs 4 100 80 60 40 1975 1980 1985 1990 1995

Wygładzanie zaburzonych danych W ogólności im większa jest waga punktu danych, tym bardziej przyczynia się ten punkt do wygladu krzywej interpolacyjnej. Jeśli waga punktów danych daży w granicy do nieskończoności, to aproksymacja smooth acsplines działa tak jak algorytm smooth csplines. Jeśli waga punktów danych daży w granicy do zera, to indywidualny wkład każdego punktu zmniejsza się i krzywa staje się gładsza. Jeśli waga punktów w granicy jest zero, to krzywa przekształaca się w funkcję liniowa.

Wbudowane funkcje matematyczne gnuplot> plot rand(0)

Wbudowane funkcje matematyczne Funkcja rand wywołana z argumentem równym zeru zwraca pseudo losowa liczbę z zkaresu od zera do jeden. gnuplot> print rand(0) 0.222190514600859 Algorytm do generowania liczb pseudolosowych wymaga ustawienia dwóch zarodków ciagu. Te same wartości dla zarodków, generuja dokładnie taki sam ciag liczb pseudolosowych. Gnuplot nie posiada oddzielnej funkcji do ustawinia zarodków; uzyskuje się je poprzez dostarczanie specjalnych argumentów do fukcnjo rand. Komendę print rand(-1) stosuje się do ustawiania zarodków na wartości domyślne.

Wbudowane funkcje matematyczne Wywołanie rand(0) rand(-1) rand(x) rand({x,y}) Znaczenie Zwraca kolejna pseudolosowa liczbę, przy użyciu bieżacych wartości obu ziaren Ustawia obydwa ziarna na wartości domyślne Dla x > 0, ustawia obydwa ziarna na wartość x Dla x, y > 0, ustawia pierwsze ziarno na x a drugie na y

Zabawa z random() #Blokuje wyswietlanie legendy unset key #Ustawia format liczbowy opisu dla osi set format x "%3.2f" set format y "%3.2f" #Tytuł wykresu set title "Liczby pseudolosowe" #Ustawia wartosci na osiach set xtics 0.1 set ytics 0.1 set terminal pdf set output "random.pdf" plot [0:1][0:1] rand(0) with dots,\ rand(0) with dots

Zabawa z random() 1.00 Liczby pseudolosowe 0.90 0.80 0.70 0.60 0.50 0.40 0.30 0.20 0.10 0.00 0.00 0.10 0.20 0.30 0.40 0.50 0.60 0.70 0.80 0.90 1.00

Zabawa z random() unset key set format x "%3.2f" set format y "%3.2f" set title "Liczby pseudolosowe" set xtics 0.1 set ytics 0.1 set terminal pdf set output "random-plus-krzyzyk.pdf" set xrange [0:1] set yrange [0:1] set style function points plot rand(0) pt 1, rand(0) pt 2

Zabawa z random() 1.00 Liczby pseudolosowe 0.90 0.80 0.70 0.60 0.50 0.40 0.30 0.20 0.10 0.00 0.00 0.10 0.20 0.30 0.40 0.50 0.60 0.70 0.80 0.90 1.00

Zabawa z random() unset key set format x "%3.2f" set format y "%3.2f" set title "Liczby pseudolosowe" set xtics 0.1 set ytics 0.1 set terminal pdf set xrange [0:1] set yrange [0:1] set output "random-plus-gwiazdka.pdf" plot rand(0) pt 1, rand(0) pt 3

Zabawa z random() 1.00 Liczby pseudolosowe 0.90 0.80 0.70 0.60 0.50 0.40 0.30 0.20 0.10 0.00 0.00 0.10 0.20 0.30 0.40 0.50 0.60 0.70 0.80 0.90 1.00

Zabawa z random() unset key set format x "%3.2f" set format y "%3.2f" set title "Liczby pseudolosowe" set xtics 0.1 set ytics 0.1 set terminal pdf set xrange [0:1] set yrange [0:1] set output "random-plus-kwadrat.pdf" plot rand(0) pt 1, rand(0) pt 4

Zabawa z random() 1.00 Liczby pseudolosowe 0.90 0.80 0.70 0.60 0.50 0.40 0.30 0.20 0.10 0.00 0.00 0.10 0.20 0.30 0.40 0.50 0.60 0.70 0.80 0.90 1.00

Zabawa z random() unset key set format x "%3.2f" set format y "%3.2f" set title "Liczby pseudolosowe" set xtics 0.1 set ytics 0.1 set terminal pdf set xrange [0:1] set yrange [0:1] set output "random-wypelnionykwadrat-okrag.pdf" plot rand(0) pt 5, rand(0) pt 6

Zabawa z random() 1.00 Liczby pseudolosowe 0.90 0.80 0.70 0.60 0.50 0.40 0.30 0.20 0.10 0.00 0.00 0.10 0.20 0.30 0.40 0.50 0.60 0.70 0.80 0.90 1.00

Zabawa z random() unset key set format x "%3.2f" set format y "%3.2f" set title "Liczby pseudolosowe" set xtics 0.1 set ytics 0.1 set terminal pdf set xrange [0:1] set yrange [0:1] set output "random-kolo-okrag.pdf" plot rand(0) pt 7, rand(0) pt 6

Zabawa z random() 1.00 Liczby pseudolosowe 0.90 0.80 0.70 0.60 0.50 0.40 0.30 0.20 0.10 0.00 0.00 0.10 0.20 0.30 0.40 0.50 0.60 0.70 0.80 0.90 1.00

Zabawa z random() unset key set format x "%3.2f" set format y "%3.2f" set title "Liczby pseudolosowe" set xtics 0.1 set ytics 0.1 set terminal pdf set xrange [0:1] set yrange [0:1] set output "random-wypelnionytrojkat-trojkat.pdf" plot rand(0) pt 9, rand(0) pt 8

Zabawa z random() 1.00 Liczby pseudolosowe 0.90 0.80 0.70 0.60 0.50 0.40 0.30 0.20 0.10 0.00 0.00 0.10 0.20 0.30 0.40 0.50 0.60 0.70 0.80 0.90 1.00

Zabawa z random() unset key set format x "%3.2f" set format y "%3.2f" set title "Liczby pseudolosowe" set xtics 0.1 set ytics 0.1 set terminal pdf set xrange [0:1] set yrange [0:1] set output "random-diamenty.pdf" plot rand(0) pt 12, rand(0) pt 13

Zabawa z random() 1.00 Liczby pseudolosowe 0.90 0.80 0.70 0.60 0.50 0.40 0.30 0.20 0.10 0.00 0.00 0.10 0.20 0.30 0.40 0.50 0.60 0.70 0.80 0.90 1.00

Zmienne i funkcje definiowane przez użytkownika Przykład definiowaia zmiennych # Podstawa logarytmu naturalnego gnuplot> e = 2.71828182845905 gnuplot> print e 2.71828182845905 #pierwiastek kwadratowy z 2 gnuplot> sqrt2 = sqrt(2) gnuplot> print sqrt2 1.4142135623731 # Stała Euler-Mascheroni gnuplot> euler = 0.57721566490153 gnuplot> print euler 0.57721566490153

Zmienne i funkcje definiowane przez użytkownika Przykład zmiennej już zdefiniowanej # Stalej PI nie trzeba definiowac gnuplot> print pi 3.14159265358979

Zmienne i funkcje definiowane przez użytkownika Funkcje moga mieć do 10 zmiennych i moga zawierać inne funkcje i operatory. f(x) = -x * log(x) min( a, b ) = ( a < b )? a : b binom( n, k ) = n!/(k!*(n-k)!) step( x ) = ( x < 0 )? 0 : 1

Zmienne i funkcje definiowane przez użytkownika Gnuplot domyślnie zakłada, że zmienna niezależna, tzw. dummy, oznaczona jest przez x. Można to zmienić za pomoca polecenia: set dummy t; teraz t przejmuje rolę zmiennej niezależnej x. gnuplot> plot [-2*pi:2*pi] sin(x) #zmiana zmiennej x na t gnuplot> set dummy t gnuplot> plot [-2*pi:2*pi] sin(t)

Zmienne i funkcje definiowane przez użytkownika Wszystkie inne zmienne występujace w definicji funkcji (parametry) musza mieć przypisane wartości przed próba ich kreślenie. gnuplot> g(x) = cos(a*x)/a gnuplot> plot a=1, g(x), a=2, g(x)

Zabawa z funkcjami set encoding utf8 set title "Funkcje" set xtic 1 set ytic 1 f1(x) = sin(x/16*2*pi)*8 round(x) = x - floor(x) < 0.5? floor(x) : ceil(x) set terminal pdf set output "funkcje.pdf" plot [0:16] [-8.5:8.5] f1(x) title "sin(x/16*2*pi)*8" with lines, round(f1(x)) with steps

Zabawa z funkcjami 8 7 6 5 4 3 2 1 0-1 -2-3 -4-5 -6-7 -8 Funkcje sin(x/16*2*pi)*8 round(f1(x)) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Zabawa z funkcjami set encoding utf8 set title "Funkcje" set xtic 1 set ytic 1 f1(x) = sin(x/16*2*pi)*8 round(x) = x - floor(x) < 0.5? floor(x) : ceil(x) set terminal pdf set output "funkcje2.pdf" plot [0:16] [-8.5:8.5] f1(x) title "sin(x/16*2*pi)*8" with lines, f1(round(x)+0.0) with steps

Zabawa z funkcjami 8 7 6 5 4 3 2 1 0-1 -2-3 -4-5 -6-7 -8 Funkcje sin(x/16*2*pi)*8 f1(round(x)+0.0) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Zabawa z funkcjami set encoding utf8 set title "Funkcje" set xtic 1 set ytic 1 f1(x) = sin(x/16*2*pi)*8 round(x) = x - floor(x) < 0.5? floor(x) : ceil(x) set terminal pdf set output "funkcje3.pdf" plot [0:16] [-8.5:8.5] f1(x) title "sin(x/16*2*pi)*8" with lines, f1(floor(x)+0.0) with steps

Zabawa z funkcjami 8 7 6 5 4 3 2 1 0-1 -2-3 -4-5 -6-7 -8 Funkcje sin(x/16*2*pi)*8 f1(floor(x)+0.0) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Zmienne i funkcje definiowane przez użytkownika Wszystkie funkcje i zmienne maja zasięg globalny. Wykaz wszystkich zmiennych i funkcji zdefiniowanych przez użytkownika można zobaczyć przy użyciu następujace dwa polecenia: show variables show functions

Liczby zespolone Gnuplot ma ograniczone wsparcie dla liczb zespolonych Liczby zespolone to pary liczb złożone z tzw. części rzeczywistej i urojonej. W gnuplocie, liczba zespolona jest przekazywana przy użyciu nawiasów klamrowych ({}), tj. liczba zespolona z = 1 + i, gdzie i jest jednostka urojona w gnuplocie zapisywana jest jako: z = {1, 1}. Ważnym ograniczeniem liczby zespolonej w Gnuplocie jest to, że obie części musza być stałymi numerycznymi a nie zmiennymi. Gnuplot może wykonywać proste działania arytmetyczne na liczbach zespolonych, np. {1, 1} + { 1, 0}. gnuplot> z2 = {0,0} + {1,1} gnuplot> print z2 {1.0, 1.0}

Liczby zespolone Wiele wbudowanych funkcji matematycznych (takich jak sin(x), exp(x), itd.) może przyjać argumenty zespolone i zwrócić liczby zespolone jako wyniki. Można również używać funkcji specjalnych real(x) i imag(x), aby wyłuskać odpowiednio część rzeczywista i część urojona liczby zespolonej x. gnuplot> plot real( exp(x*{0,1}) ), imag( exp(x*{0,1}) )

Proste przekształcenia danych W dyrektywie using komendy plot do każdego punktu danych można zastosować dowolna funkcję. Jeśli pierwszy lub drugi argument dyrektywy using jest ujęty w nawiasy, to nie jest on traktowany jako numer kolumny w pliku z danymi, ale jako wartość wyrażenia. Wewn atrz wspomnianych nawiasów, można uzyskać dostęp do wartości danej kolumny poprzez poprzedzenie numeru kolumny znakiem dolara ($).

Proste przekształcenia danych gnuplot> plot "lipiec2015.txt" u 1:(sqrt($2)) w l

Proste przekształcenia danych gnuplot> plot "lipiec2015.txt" u 1:($2-$3) w l, "" u 1:2, "" u 1:3

Proste przekształcenia danych gnuplot> plot "lipiec2015.txt" u 1:(($2+$3)/2) w l, "" u 1:2, "" u 1:3

Proste przekształcenia danych gnuplot> plot "lipiec2015.txt" u 1:($2 >20? log($2):0) w l, "" u 1:2

Proste przekształcenia danych Wyrażenia w nawiasach dyrektyw using moga być stałymi. Przykład z kolejnego slajdu używa dyrektywy smooth frequency, aby policzyć ile razy każda wartość w drugiej kolumnie wystapiła. Pamięta: dyrektywa smooth frequency sumuje dane dostarczane jako wartości y i kreśli ich sumę).

Proste przekształcenia danych gnuplot> plot [][0:8]"lipiec2015.txt" u 2:(1) smooth frequency with lines

Pseudokolumny Gnuplot definiuje dwie pseudokolumny(0 i -2), które moga być stosowane wraz z transformacjami danych. Kolumna 0 zawiera numer linii w bieżacym zbiorze danych. Kolumna -2 zawiera indeks aktualnych danych zawartych w pliku danych. Napotkana podwójna pusta linia w pliku powoduje, że numer linii jest ustawiany na zero, a indeks danych jest zwiększony o 1.

Pseudokolumny gnuplot> set xtics 1 gnuplot> plot "lipiec2015.txt" u 0:3 with lines

Pseudokolumny Innym sposobem wybieru kolumny jest zastosowanie funkcji column(x). Funkcja column(x) oblicza swój argument i używa jego wartości (które powinny być liczba całkowita), aby wybrać kolumnę. Funkcja column(x) jest dostępna tylko wewn atrz nawiasów stosowanych jako część dyrektywy using.

Pseudokolumny gnuplot> set xtics 1 gnuplot> x = 2 gnuplot> plot "lipiec2015.txt" u 1:(column(x)) w l

Kreślenie funkcji i danych Dwie ważne opcje kreślenia funkcji: set samples i set clip. set samples kontroluje liczbę punktów, w których funkcja jest obliczana i wykreślana. Domyślna wartość dla set samples to 100 punktów. Sensowne wartości dla kreślenia bardzieje wymagajacych krzywych to: 300-500. Ustawienie próbkowania większego niż liczba pikseli na urzadzeniu wyjściowym nie ma sensu. Opcja set clip kontroluje jak gnuplot traktuje punkty danych, które sa zbyt blisko lub poza zakresem wydruku.

Kreślenie funkcji i danych set clip points - ma znaczenie tylko w przypadku korzystania ze styli, które pokazuja dyskretne symbole (takie jak wykresy z punktów, z linespoints, i tak dalej). Jeśli set clip points zostało ustawione, to symbole, które dotykaja lub nakładaja się na granice wykresu nie sa kreślone. Dokładnie ile punktów się obcina zależy od wielkości symbolu; dla większych symboli, więcej punktów jest odrzucane. set clip [ one two ] - kontroluje jak gnuplot klreśli odcinki łacz ace punkty, jeśli co najmniej jeden z elementów znajduje się poza widzialnym zakresem tego wykresu.

Kreślenie funkcji i danych Jeśli ustawiony jest set clip one, to segmenty sa rysowane w przypadku, gdy co najmniej jedne z punktów końcowych leży poza widzialnym zakresem tego wykresu. Jeśli ustawiony jest set clip two, to segmenty sa rysowane jeśli oba punkty końcowe sa poza bieżacym zakresem widzialnym wykresu. Domyślnie ustawiony jest set clip one, a set clip two jest wyłaczony.

Wykresy logarytmiczne # wlaczenie skali logarytmicznej na obu osiach set logscale # wlaczenie skali logarytmicznej na osi x set logscale x # wlaczenie skali logarytmicznej na osi y set logscale y # wylaczenie skali logarytmicznej na obu osiach unset logscale # wylaczenie skali logarytmicznej na osi x unset logscale x # wylaczenie skali logarytmicznej na osi y unset logscale y