Top Banner
Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki/matematyki Rafal Topolnicki KNF ”Migacz” Uniwersytet Wroclawski Wroclaw, 11 października 2010 Gnuplot niebanalnie Wroclaw, 11 października 2010 1 / 68
87

Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Jan 11, 2017

Download

Documents

truongphuc
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Gnuplot niebanalniePrzewodnik po gnuplocie dla studenta fizyki/matematyki

Rafał Topolnicki

KNF ”Migacz” Uniwersytet Wrocławski

Wrocław, 11 października 2010

Gnuplot niebanalnie Wrocław, 11 października 2010 1 / 68

Page 2: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Plan działania

Plan działania

Wprowadzenie,Rysowanie funkcji matematycznych:

2D - style linii, obramowanie wykresu, skale3D - style siatki, kolorowanie wykresu,równania parametryczne.

Rysowanie danych z plikuzaznaczanie niepewności,algorytmy interpolacyjne,funkcje kolumn,

Fitowanie (dopasowywanie funkcji do danych)Zaawansowane możliwości

tryb multiplot,rysowanie funkcji łączonych/nieciągłych,wizualizacja danych,

Przykłady z życiaWizualizacja modelu ewolucji,Wykresy do posteru ”Projekt Lifter”,Wykresy do referatu o promieniowaniu,

Literatura Gnuplot niebanalnie Wrocław, 11 października 2010 2 / 68

Page 3: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Wstęp

Do czego służy gnuplot

Do rysowania wykresów funkcji 2D i 3Ddanych w jawnym wzorem y(x), z(x, y),danych równaniem parametrycznym (x, y) = (x(t), y(t))(x, y, z) = (x(u, v), y(u, v), z(u, v))

Do rysowania wykresów na podstawie danych pomiarowych (pliku)zaznaczanie danych pomiarowych oraz ich niepewności,znajdowanie krzywej przechodzącej/przybliżającej zebrane dane pomiarowe,dopasowywanie wzoru funkcji do danych pomiarowych (=fitowanie),do wizualizacji danych zmiennych w czasie (z użyciem pliku FIFO)

Do czego gnuplot się nie nadaje

Do obróbki danych i przeprowadzania obliczeń,

Wiele zachodu wymaga rysowanie funkcji ”łączonych” (tj. określonych naprzedziałach innych niż skala wykresu)

Do tworzenia diagramów kołowych, słupkowych itp.

Gnuplot niebanalnie Wrocław, 11 października 2010 3 / 68

Page 4: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Wstęp

Do czego służy gnuplot

Do rysowania wykresów funkcji 2D i 3Ddanych w jawnym wzorem y(x), z(x, y),danych równaniem parametrycznym (x, y) = (x(t), y(t))(x, y, z) = (x(u, v), y(u, v), z(u, v))

Do rysowania wykresów na podstawie danych pomiarowych (pliku)zaznaczanie danych pomiarowych oraz ich niepewności,znajdowanie krzywej przechodzącej/przybliżającej zebrane dane pomiarowe,dopasowywanie wzoru funkcji do danych pomiarowych (=fitowanie),do wizualizacji danych zmiennych w czasie (z użyciem pliku FIFO)

Do czego gnuplot się nie nadaje

Do obróbki danych i przeprowadzania obliczeń,

Wiele zachodu wymaga rysowanie funkcji ”łączonych” (tj. określonych naprzedziałach innych niż skala wykresu)

Do tworzenia diagramów kołowych, słupkowych itp.

Gnuplot niebanalnie Wrocław, 11 października 2010 3 / 68

Page 5: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Wstęp

Dlaczego gnuplot?

Dostępny za darmo,

W przeciwieństwie do Excela możliwość rysowania funkcji matematycznych w2D i 3D,

Ogromne możliwości formatowania wykresów,

Szybki w działaniu,

Używany przez inne oprogramowanie - Maxima, Octave, MPSolve . . .

Dobrze współgra z LATEX’em,

Działa w trybie wsadowym a wykresy możemy zapisywać do plikówgraficznych (.jpg, .png, .bmp, .eps, .pdf)

Paradoksalnie obsługa z wiersza poleceń jest szalenie wygodna.

Gnuplot niebanalnie Wrocław, 11 października 2010 4 / 68

Page 6: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Wstęp

Interfejs

Linux Windows

Gnuplot niebanalnie Wrocław, 11 października 2010 5 / 68

Page 7: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Wstęp

Tryby pracy

Gnuplot może pracować w dwóch trybach

interaktywnym - w terminalu wydajemy kolejne polecenia. Po zamknięciuprogramu tracimy całą pracę. Tylko bardzo proste i krótkie zadania

wsadowym - dowolnym edytorem tekstu piszemy skrypt który wczytujemy dognuplota - znacznie lepsze rozwiązanie

Przejście do trybu wsadowego

Polecenia save i loadsave ’ nowy wykres . gp ’l oad ’ nowy wykres . gp ’

lub bezpośrednio z terminala:[ r a fa l@manhat tan ] $ gnup l o t nowy wykres . gp

Gnuplot niebanalnie Wrocław, 11 października 2010 6 / 68

Page 8: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Wykresy 2D

Wykresy funkcji

Używamy polecenia plot, które można skrócić do pl lub samego pplot sin(x),cos(x)

Gnuplot niebanalnie Wrocław, 11 października 2010 7 / 68

Page 9: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Wykresy 2D

Style linii

Wygląd linii na wykresie jest zdefiniowany przez ich styl. Style są numerowane.Pierwszy styl odpowiada pierwszemu wykresowi, drugi drugiemu itd.s e t s t y l e l i n e <index> {{ l i n e t y p e | l t } < l i n e t y p e > | <c o l o r s p e c >}

{{ l i n e c o l o r | l c } <c o l o r s p e c >}{{ l i n e w i d t h | lw} < l i n e w i d t h >}{{ po i n t t y p e | pt } <po i n t t y p e >}{{ p o i n t s i z e | ps } <p o i n t s i z e >}{{ p o i n t i n t e r v a l | p i } < i n t e r v a l >}{ p a l e t t e }

Zgodnie z powyższym tworzymy nowe style:gnup lot> s e t s t y l e l i n e 1 l c rgb ’ b l u e ’ lw 2gnup lot> s e t s t y l e l i n e 2 l c rgb ’#f f 0 606 ’ lw 1gnup lot> show s t y l e l i n el i n e s t y l e 1 , l i n e t y p e 1 l i n e c o l o r 0 l i n ew i d t h 2 .000. . . p o i n t t y p e 1 p o i n t s i z e d e f a u l t p o i n t i n t e r v a l 0l i n e s t y l e 2 , l i n e t y p e 2 l i n e c o l o r 0 l i n ew i d t h 1 .000. . . p o i n t t y p e 2 p o i n t s i z e d e f a u l t p o i n t i n t e r v a l 0

Polecenie show style line prezentuje obecnie używane style. Rysowanie linii zużyciem stylu 1 i 2p l o t s i n ( x ) l s 1 , cos ( x ) l s 2

Gnuplot niebanalnie Wrocław, 11 października 2010 8 / 68

Page 10: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Wykresy 2D

Wygląd linii - kolory, grubość

Domyśle kolory wykresów przedstawiono poniżej:

lc lc lc

1 4 7

2 5 8

3 6 9

Można również używać nazw: ’blue’, ’red, ’orange’, ’sea-blue’ . . .lub podać kod heksadecymalny koloru: ’#ff0606’, ’#989898’, ’#fdc938’ . . .p [ 0 : 3 0 ] exp (−0.1∗ x )∗ cos ( x ) , exp (−0.1∗ x ) l c 7 ,

−exp (−0.1∗ x ) rgb l c ’ b l a c k ’

Gnuplot niebanalnie Wrocław, 11 października 2010 9 / 68

Page 11: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Wykresy 2D

Typy linii

Mamy do dyspozycji kilka typów linii, które wybieramy po słowie kluczowym with

lines - rysowanie za pomocą ciągłej liniipoints - rysowanie jedynie punktówpt - typ punktów

ps - wielkość punktów

dots - rysowanie za pomocą kropek - użyteczne przy wykresach 3D

linespoints - punkty łączone linią. Wygląd punktów i linii definiujemyosobno, tak jak dla points i lines

Gnuplot niebanalnie Wrocław, 11 października 2010 10 / 68

Page 12: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Wykresy 2D

Typy linii - przykład

p [− p i : p i ] [ −1 : 1 ] s i n ( x ) w po i n t s ps 2 pt 2 l c 8 ,cos ( x ) w p ps 1 pt 7 l c 2 ,2/ p i ∗∗2∗ x∗∗2−1 w l i n e s p o i n t s lw 2 pt 5 ps 0 .5 l c 1

Gnuplot niebanalnie Wrocław, 11 października 2010 11 / 68

Page 13: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Wykresy 2D

Typy linii - egzotyka

W uzasadnionych wypadkach mamy do dyspozycji również:

p sin(x) w impulses p sin(x) w steps

p sin(x) w boxes p sin(x) w filledcurves

Gnuplot niebanalnie Wrocław, 11 października 2010 12 / 68

Page 14: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Wykresy 2D

Osie i obramowanie

Dodanie siatki - set grid

Dodanie osi OX - set xzeroaxis

Dodanie osi OY - set yzeroaxis

s e t g r i ds e t x z e r o a x i s l t 1 l c ’ b l a c k ’s e t y z e r o a x i s l t 1 l c ’ b l a c k ’p atan ( x )∗ exp(−abs ( x ) ) lw 2

Gnuplot niebanalnie Wrocław, 11 października 2010 13 / 68

Page 15: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Wykresy 2D

Osie i obramowanieObramowanie wykresu ustalamy za pomocą set border n

Aby usunąć skalę z górnego i prawego obramowanie wydajemy odpowiedniopolecenie set xtics nomirror, set xtics nomirror

s e t x t i c s nom i r r o rs e t y t i c s nom i r r o rs e t border 3p [ −1 :1 ] a s i n ( x ) lw 2

Gnuplot niebanalnie Wrocław, 11 października 2010 14 / 68

Page 16: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Wykresy 2D

ZakresDomyślnie wykresy y = f(x) rysowana są w zakresie x ∈ [−10, 10],y ∈ maxx(f(x)).

Ograniczenie argumentów do x ∈ [−π, π]p [− p i : p i ] s i n ( x )

Argumenty z góry ograniczone przez π z dołu przez domyślą wartośćp [ : p i ] s i n ( x )

Ograniczenie argumentów oraz wartości funkcjip [− p i : p i ] [ −1 : 1 ] s i n ( x ) , x∗∗2

Można też z góry narzucić zakres osi:s e t xrange [− p i : p i ]s e t yrange [ −1 :1 ]

Gnuplot niebanalnie Wrocław, 11 października 2010 15 / 68

Page 17: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Wykresy 2D

PodziałkaMożemy wymusić stosowanie podziałki na każdej z osi osobno: set xtics, setytics, set ztics, set x2tics . . .

Wymuszenie konkretnych wartościz listy

s e t x t i c s (1 ,2 , 4 , 8 , 16 ,32 ,64 ,128 ,256 ,512 ,1024)

co 0.75 od 0 do 3.75

s e t x t i c s 0 , 0 . 7 5 , 3 . 7 5

co 0.5 z wyróżnieniem π

s e t x t i c s 0 , . 5 , 10s e t x t i c s add ( ”Pi ” 3 .14159)

Wymuszenie konkretnych nazw:s e t x t i c s ( ” brak ” 0 , ”1/4” 0 . 25 , ” polowa” 0 . 5 , ”3/4” 0 . 75 , ” c a l o s c ” 1)

Gnuplot niebanalnie Wrocław, 11 października 2010 16 / 68

Page 18: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Wykresy 2D

Podwójne osie

s e t xrange [ 0 : 2 ∗ p i ]s e t yrange [ −1 :1 ]s e t y2range [ 0 : 1 ]p s i n ( x ) a x i s x1y1 ,s i n ( x )∗∗2 a x i s x1y2

s e t xrange [ 0 : 2 ∗ p i ]s e t yrange [ −1 :1 ]s e t y2range [ 0 : 1 ]s e t y 2 t i c s 0 , 0 . 2s e t y t i c s nom i r r o rp s i n ( x ) a x i s x1y1 ,s i n ( x )∗∗2 a x i s x1y2

Gnuplot niebanalnie Wrocław, 11 października 2010 17 / 68

Page 19: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Wykresy 2D

Etykiety

Tytuł obrazu: set title "Tytul Wykresu"

Tytuł osi OX: set xlabel "OX"

Tytuł osi OY: set ylabel "OX"

Nazwa wykresu: title "Tytul"

Domyślny krój czcionki nie jest zbyt atrakcyjny. Możemy to łatwo zmienić.s e t t i t l e ”Wykres” f on t ” He l v e t i c a , 15 ”s e t x l a b e l ”Czas ” f o n t ”Times− I t a l i c , 14 ”s e t y l a b e l ” S t e z e n i e ” f on t ” A r i a l−Bold , 13 ”p [ 0 : ] exp (−0.8∗ x ) t i t l e ”Probka 1”

Gnuplot niebanalnie Wrocław, 11 października 2010 18 / 68

Page 20: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Wykresy 3D

Polecenie splot

Wykresy 3D tzn: R× R→ R tworzymy za pomocą polecenia splot. Konstrukcjaw pełni analogiczna do wykresów 2D.

s p l o t x∗∗2+y∗∗2s e t i s o samp l e s 35sp exp (−0.2∗ s q r t ( x∗∗2+y ∗∗2))∗ s i n ( s q r t ( x∗∗2+y ∗∗2))

Gnuplot niebanalnie Wrocław, 11 października 2010 19 / 68

Page 21: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Wykresy 3D

Zmienne isosamples hidden3d

isosamples to zmienna odpowiadająca za gęstość siatki - im większawartość tym wykres jest dokładniejszy a jego rysowanie wolniejsze

po wydaniu polecenia set hidden3d powierzchnia przestaje być przezroczysta

s e t hidden3d unse t hidden3d

Gnuplot niebanalnie Wrocław, 11 października 2010 20 / 68

Page 22: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Wykresy 3D

Zmienna pm3d

pm3d odpowiada za kolorowanie wykresów 3D i 4D. W zależności od ustawieniahidden3d na powierzchni jest rysowana siatka.

s e t hidden3dse t pm3dsp . .

un se t hidden3dse t pm3dsp . .

Gnuplot niebanalnie Wrocław, 11 października 2010 21 / 68

Page 23: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Wykresy 3D

Wpływ isosamplesisosamples 20 isosamples 50

isosamples 100 isosamples 200

Gnuplot niebanalnie Wrocław, 11 października 2010 22 / 68

Page 24: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Wykresy 3D

Zmiana palety - set palette rgbformulae

Zmiana palety umożliwia zmianę sposobu kolorowania wykresu.s e t p a l e t t e r gb f o rmu l a e N1 ,N2 ,N3

Liczby całkowite N1,N2,N3 to numery funkcji odwzorowujących wartość funkcji wskładowe w kodzie RGB koloru. Aby zobaczyć spis funkcjignup lot> show p a l e t t e r gb f o rmu l a e

∗ t h e r e a r e 37 a v a i l a b l e rgb c o l o r mapping f o rmu lae :0 : 0 1 : 0 . 5 2 : 13 : x 4 : xˆ2 5 : xˆ36 : xˆ4 7 : s q r t ( x ) 8 : s q r t ( s q r t ( x ) )

. . . .

Gdy wiemy w jakim przedziale są wartości funkcji możemy użyć konstrukcjis e t p a l e t t e d e f i n e d (−1 ” b l a c k ” , 0 ” b l u e ” , 1 ” red ” )

Gnuplot niebanalnie Wrocław, 11 października 2010 23 / 68

Page 25: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Wykresy 3D

Porównanie palet

s e t p a l e t t e d e f i n e d(−0.4 ” b l u e ” ,0 ” g reen ” , 0 . 8 ” red ” )

r gb f o rmu l a e 10 ,13 ,9

r gb f o rmu l a e 21 ,3 ,0 r gb f o rmu l a e 23 ,28 ,3

Gnuplot niebanalnie Wrocław, 11 października 2010 24 / 68

Page 26: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Wykresy 3D

Kontury=poziomice

Zaznaczanie konturóws e t contour

Opcje:

baseKontury jedynie na płaszczyźnie XYs e t contour basesp . . . .

surfaceKontury jedynie na powierzchniwykresus e t contour s u r f a c ese t hidden3dsp . . . .

bothKontury na płaszczyźnie XY oraz nawykresies e t contour bothsp . . . .

Gnuplot niebanalnie Wrocław, 11 października 2010 25 / 68

Page 27: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Wykresy 3D

Kontury=poziomice

Zaznaczanie konturóws e t contour

Opcje:

baseKontury jedynie na płaszczyźnie XYs e t contour basesp . . . .

surfaceKontury jedynie na powierzchniwykresus e t contour s u r f a c ese t hidden3dsp . . . .

bothKontury na płaszczyźnie XY oraz nawykresies e t contour bothsp . . . .

Gnuplot niebanalnie Wrocław, 11 października 2010 25 / 68

Page 28: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Wykresy 3D

Kontury=poziomice

Zaznaczanie konturóws e t contour

Opcje:

baseKontury jedynie na płaszczyźnie XYs e t contour basesp . . . .

surfaceKontury jedynie na powierzchniwykresus e t contour s u r f a c ese t hidden3dsp . . . .

bothKontury na płaszczyźnie XY oraz nawykresies e t contour bothsp . . . .

Gnuplot niebanalnie Wrocław, 11 października 2010 25 / 68

Page 29: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Wykresy 3D

Kontury=poziomice

1 Narysowanie 10 konturów równoodległychs e t cntrparam l e v e l s 11

2 Narysowanie konturów odległych o żądaną wartośćs e t cntrparam l e v e l s i n c r emen t a l −1, 0 . 25 , 1

3 Wymuszenie położenia konturóws e t cntrparam l e v e l s d i s c r e t e −0.25 , −0.5 , 0 , 0 . 2 , 0 . 5 , 0 . 8

Gnuplot niebanalnie Wrocław, 11 października 2010 26 / 68

Page 30: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Wykresy 3D

Widok - set view

Polecenie set view umożliwia zmianęorientacji wykresu 3D.s e t view ro tx , r o t zs e t view equa l { xy | xyz }

Domyśle wartości rotx, roty zależą odterminala - 60,30 dla wxt i 0,0 dla x11.

s e t view 0 ,0 s e t view 60 ,15 s e t view 30 ,15

Gnuplot niebanalnie Wrocław, 11 października 2010 27 / 68

Page 31: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Funkcje parametryczne

Równania parametryczne

Wykresy funkcji postaci x = x(t), y = y(t), x = x(u, v), y = y(u, v), z = z(u, v)możemy rysować przechodząc do trybu parametrycznegos e t pa ramet r i c

dummy v a r i a b l e i s t f o r cu rve s , u/v f o r s u r f a c e s

s e t pa ramet r i c

dummy v a r i a b l e i s t f o r cu rve s , u/v f o r s u r f a c e ss e t s i z e r a t i o 1s e t xrange [ −1 :1 ]s e t yrange [ −1 :1 ]p l o t [ 0 : 2 ∗ p i ] s i n ( t ) , cos ( t )

Gnuplot niebanalnie Wrocław, 11 października 2010 28 / 68

Page 32: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Funkcje parametryczne

Równania parametryczne

Wykresy funkcji postaci x = x(t), y = y(t), x = x(u, v), y = y(u, v), z = z(u, v)możemy rysować przechodząc do trybu parametrycznegos e t pa ramet r i c

dummy v a r i a b l e i s t f o r cu rve s , u/v f o r s u r f a c e s

Parametr t zmienia się w sposób skokowy awielkość skoku zdefiniowana jest przez zmiennasamples (domyślna wartość 100). Jeśli chcemynarysować N -kąt foremny wystarczyset samples N+1

s e t pa ramet r i c

dummy v a r i a b l e i s t f o r cu rve s , u/v f o r s u r f a c e ss e t s i z e r a t i o 1s e t xrange [ −1 :1 ]s e t yrange [ −1 :1 ]s e t samples 7p l o t [ 0 : 2 ∗ p i ] s i n ( t ) , cos ( t )

Gnuplot niebanalnie Wrocław, 11 października 2010 28 / 68

Page 33: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Funkcje parametryczne

Spirala

(x, y)(t) = (r(t) cos(t), r(t) sin(t))

spirala r(t) = const

kardioida r(t) = C (1 + cost)

s e t xrange [−10∗ p i : 10∗ p i ]s e t yrange [−10∗ p i : 10∗ p i ]s e t samples 200p l o t [ 0 : 1 0∗ p i ] t ∗ s i n ( t ) , t ∗ cos ( t )

Cykloida

(x, y) = (r(t− sin t), r(1− cos t))

s e t xrange [−2∗ p i : 2∗ p i ]s e t yrange [ 0 : 2 ]s e t samples 200unse t keyr=1p [−2∗ p i : 2∗ p i ] r ∗( t−s i n ( t ) ) , r ∗(1− cos ( t ) )

Gnuplot niebanalnie Wrocław, 11 października 2010 29 / 68

Page 34: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Funkcje parametryczne

Spirala

(x, y)(t) = (r(t) cos(t), r(t) sin(t))

spirala r(t) = const

kardioida r(t) = C (1 + cost)

s e t xrange [−10∗ p i : 10∗ p i ]s e t yrange [−10∗ p i : 10∗ p i ]s e t samples 200p l o t [ 0 : 1 0∗ p i ] t ∗ s i n ( t ) , t ∗ cos ( t )

Cykloida

(x, y) = (r(t− sin t), r(1− cos t))

s e t xrange [−2∗ p i : 2∗ p i ]s e t yrange [ 0 : 2 ]s e t samples 200unse t keyr=1p [−2∗ p i : 2∗ p i ] r ∗( t−s i n ( t ) ) , r ∗(1− cos ( t ) )

Gnuplot niebanalnie Wrocław, 11 października 2010 29 / 68

Page 35: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Funkcje parametryczne

Sfera

(x, y, z) = r (cosu cos v, sinu cos v, sin v)

s e t nokeys e t pa ramet r i cs e t hidden3dse t i s o samp l e s 30 ,20s e t t i c s l e v e l 0s e t xrange [−1.2 : 1 . 2 ]s e t yrange [−1.2 : 1 . 2 ]s e t zrange [−1 : 1 ]s p l o t [− p i : p i ][− p i /2 : p i /2 ] cos ( u )∗ cos ( v ) ,

s i n ( u )∗ cos ( v ) , s i n ( v )

Użycie set ticslevel 0 powoduje usunięcieprzerwy między powierzchnią wykresu apłaszczyzną XY.

Gnuplot niebanalnie Wrocław, 11 października 2010 30 / 68

Page 36: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Funkcje parametryczne

Torus

s e t nokeys e t pa ramet r i cs e t hidden3dse t pm3ds e t view 30s e t i s o samp l e s 60 ,60s e t yrange [ −1 :1 ]s p l o t [− p i : p i ][− p i : p i ] cos ( u )∗ ( cos ( v )+3) ,

0 .3∗ s i n ( v ) , s i n ( u )∗ ( cos ( v )+3)

Gnuplot niebanalnie Wrocław, 11 października 2010 31 / 68

Page 37: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Funkcje parametryczne

Muszla

s e t nokeys e t noborde rs e t n o x t i c ss e t n o y t i c ss e t n o z t i c ss e t pa ramet r i cs e t hidden3dse t view 90 ,330 ,1 , 1 . 3s e t i s o samp l e s 300 ,30s p l o t [ 0 : 1 3∗ p i ][− p i : p i ]

u∗ cos ( u )∗ ( cos ( v )+1) ,u∗ s i n ( u )∗ ( cos ( v )+1) ,u∗ s i n ( v ) − ( ( u+3)/8∗ p i )∗∗2 − 20

Gnuplot niebanalnie Wrocław, 11 października 2010 32 / 68

Page 38: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Dane z pliku

Struktura pliku

Gnuplot został stworzony jako narzędzie do obróbki i prezentowania danychpomiarowych. Plik z którego pobieramy dane powinien składać się z kolumnrozdzielonych spacjami lub tabulatorami (domyślnie).W zapisie dziesiętnym używamy . (kropki) a nie , (przecinka)Przykład pliku:#UH diod1 d iod2 d iod3 d iod4 d iod50 .0036 1 .9 3 .0 1 .7 0 .5 0 .4−0.0643 1 .7 2 .7 1 .5 0 .4 0 .2−0.0908 1 .6 2 .5 1 .3 0 .3 0 .2−0.1559 1 .4 2 .1 1 .1 0 .2 0 .1−0.2016 1 .2 1 .9 0 .9 0 .1 0 .0. . . .

Gnuplot niebanalnie Wrocław, 11 października 2010 33 / 68

Page 39: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Dane z pliku

Wybór kolumny

Do rysowania wykresów na podstawie danych z pliku używamy polecenia plotpodając następnie nazwę pliku a po using wybrane kolumnyp l o t ’ dane . t x t ’ us ing 1 : 2 , ’ dane . t x t ’ us ing 1 :3 w l i n e s

polecenie using można skrócić do samego u

Łączenie punktów

Dodanie w lines łączy punkty łamaną. Aby połączyć je gładką krzywą używamysmooth a następnie jeden z możliwych algorytmów (→ patrz ? smooth)

Używany plik

1 1 .1 0 .1 0 .12 2 .0 0 .13 0 .083 1 .4 0 .04 0 .124 1 .7 0 .11 0 .15 0 .8 0 .5 0 .036 1 .0 0 .3 0 .17 1 .5 0 .31 0 .118 2 .1 0 .55 0 .6

Gnuplot niebanalnie Wrocław, 11 października 2010 34 / 68

Page 40: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Dane z pliku

Wybór kolumny

Do rysowania wykresów na podstawie danych z pliku używamy polecenia plotpodając następnie nazwę pliku a po using wybrane kolumnyp l o t ’ dane . t x t ’ us ing 1 : 2 , ’ dane . t x t ’ us ing 1 :3 w l i n e s

polecenie using można skrócić do samego u

Łączenie punktów

Dodanie w lines łączy punkty łamaną. Aby połączyć je gładką krzywą używamysmooth a następnie jeden z możliwych algorytmów (→ patrz ? smooth)

Używany plik

1 1 .1 0 .1 0 .12 2 .0 0 .13 0 .083 1 .4 0 .04 0 .124 1 .7 0 .11 0 .15 0 .8 0 .5 0 .036 1 .0 0 .3 0 .17 1 .5 0 .31 0 .118 2 .1 0 .55 0 .6

Gnuplot niebanalnie Wrocław, 11 października 2010 34 / 68

Page 41: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Dane z pliku

Dane z pliku - pierwsze starcie

Jedynie punkty punkty z plikup ’ dane . t x t ’ u 1 : 2

Punkty połączone łamanąp ’ dane . t x t ’ u 1 : 2 w l i n e s

Punkty i łamanap ’ dane . t x t ’ w p pt 7 ps 1 . 2 , ’ dane . t x t ’ w l

Gnuplot niebanalnie Wrocław, 11 października 2010 35 / 68

Page 42: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Dane z pliku

Rysowanie niepewności

p l o t ’ dane . t x t ’ 1 : 2 : 3 : 4 w x y e r r o r b a r s

Możliwe sposoby podawania wartości niepewności

w xerrorbars (albo yerrorbars)( x , y , Dx)( x , y , xlow , xh igh )

w xyerrorbars

( x , y , Dx , Dy)( x , y , xlow , xh igh , ylow , yh igh )

p ’ dane ’ u 1 : 2 : 3 w x e r r o r b a r slw 1 . 2 , ’ krzywa . t x t ’ w l

p ’ dane ’ u 1 : 2 : 3 : 4 w x y e r r o r b a r slw 1 . 2 , ’ krzywa . t x t ’ w l

Gnuplot niebanalnie Wrocław, 11 października 2010 36 / 68

Page 43: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Dane z pliku

Rysowanie niepewności

p l o t ’ dane . t x t ’ 1 : 2 : 3 : 4 w x y e r r o r b a r s

Możliwe sposoby podawania wartości niepewności

w xerrorbars (albo yerrorbars)( x , y , Dx)( x , y , xlow , xh igh )

w xyerrorbars

( x , y , Dx , Dy)( x , y , xlow , xh igh , ylow , yh igh )

p ’ dane ’ u 1 : 2 : 3 w x e r r o r b a r slw 1 . 2 , ’ krzywa . t x t ’ w l

p ’ dane ’ u 1 : 2 : 3 : 4 w x y e r r o r b a r slw 1 . 2 , ’ krzywa . t x t ’ w l

Gnuplot niebanalnie Wrocław, 11 października 2010 36 / 68

Page 44: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Dane z pliku

Interpolacja

Gnuplot posiada szereg algorytmów interpolacyjnych służących do rysowaniakrzywych przybliżających punkty pomiarowe. Do wygładzania używamy argumentusmooth, podając następnie nazwę algorytmu (np. acsplines, csplines,bezier), polecenia plot

Wygładzanie linii - krzywe Beziera

(x, y) =

(n∑i=0

xiBni (t),

n∑i=0

yiBni (t)

)Bni (t) - wielomiany Bernsteina

p ’ krzywa . t x t ’ w p pt 7 ps 1 . 2 ,’ krzywa . t x t ’ smooth b e z i e r

Gnuplot niebanalnie Wrocław, 11 października 2010 37 / 68

Page 45: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Dane z pliku

Interpolacja

Gnuplot posiada szereg algorytmów interpolacyjnych służących do rysowaniakrzywych przybliżających punkty pomiarowe. Do wygładzania używamy argumentusmooth, podając następnie nazwę algorytmu (np. acsplines, csplines,bezier), polecenia plot

Wygładzanie linii - krzywe Beziera

(x, y) =

(n∑i=0

xiBni (t),

n∑i=0

yiBni (t)

)Bni (t) - wielomiany Bernsteina

p ’ krzywa . t x t ’ w p pt 7 ps 1 . 2 ,’ krzywa . t x t ’ smooth b e z i e r

Gnuplot niebanalnie Wrocław, 11 października 2010 37 / 68

Page 46: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Dane z pliku

Interpolacja - krzywe Beziera

Problem - co stanie się gdy dane w pliku nie będą ustawione rosnąco względemargumentu (tj. pierwszej kolumny)? Zamieniamy miejscami w naszym pliku linie 4i 5.

”niepoprawna” krzywap ’ dane ’ smooth b e z i e r

”poprawna” krzywap ’ dane ’ smooth s b e z i e r

użycie sbezier zamiast bezierzmusza gnuplota do wcześniejszegoposortowania pliku

Gnuplot niebanalnie Wrocław, 11 października 2010 38 / 68

Page 47: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Dane z pliku

Interpolacja - algorytm csplines

csplines prowadzi krzywą przechodzącą przez wszystkie punkty pomiarowe.Nie mamy wpływu na jej kształt. Gnuplot sam sortuje dane z pliku.

p ’ krzywa . t x t ’ w p pt 7 ps 1 . 2 ,’ krzywa . t x t ’ smooth s p l i n e s

Gnuplot niebanalnie Wrocław, 11 października 2010 39 / 68

Page 48: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Dane z pliku

Interpolacja - algorytm acsplines

O wygładzeniu krzywej decyduje parametr - im większa jest jego wartość tymkrzywa ’dokładniej’ przechodzi przez punkty. W granicy →∞ otrzymujemycsplines

using 1:2:(10) - parametr =10 dla wszystkich punktów

using 1:2:3 - paramter brany z 3 kolumny

using 1:2:($3**2+1) - parametr równy kwadratowi liczby z trzeciejkolumny +1

dowolna funkcja trzeciej kolumnys ( x , p)=1/( x∗x∗p )p ’ dane ’ u 1 : 2 : ( s ( $3 , 1 ) ) smooth a c s p l i n e s

Gnuplot niebanalnie Wrocław, 11 października 2010 40 / 68

Page 49: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Dane z pliku

Interpolacja - algorytm acsplines

p ’ krzywa . t x t ’ w p pt 7 ps 1 .2 n o t i t l e ,’ krzywa . t x t ’ smooth b e z i e r t i t l e ” b e z i e r ” ,’ krzywa . t x t ’ u 1 : 2 : ( 1 ) smooth a c s p l i n e s t i t l e ”1” ,’ krzywa . t x t ’ u 1 : 2 : ( 1 0 ) smooth a c s p l i n e s t i t l e ”10” ,’ krzywa . t x t ’ u 1 : 2 : ( 1 0 0 ) smooth a c s p l i n e s t i t l e ”100” ,’ krzywa . t x t ’ u 1 : 2 : ( 1 0 0 0 ) smooth a c s p l i n e s t i t l e ”1000” ,’ krzywa . t x t ’ u 1 : 2 : ( 1 00000 ) smooth a c s p l i n e s t i t l e ”100000”

Gnuplot niebanalnie Wrocław, 11 października 2010 41 / 68

Page 50: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Dane z pliku

Interpolacja - algorytm acsplines

s ( x , p)=1/( x∗x∗p )u ( x , p)=1/ l og ( x∗p+1)p ’ krzywa . t x t ’ w p pt 7 ps 1 .2 n o t i t l e ,’ krzywa . t x t ’ u 1 : 2 : ( s ( $3 , 1 ) ) smooth a c s p l i n e s t i t l e ” s ( x , 1 ) ” ,’ krzywa . t x t ’ u 1 : 2 : ( s ( $3 , 0 . 1 ) ) smooth a c s p l i n e s t i t l e ” s ( x , 0 . 1 ) ” ,’ krzywa . t x t ’ u 1 : 2 : ( u ( $3 , 0 . 1 ) ) smooth a c s p l i n e s t i t l e ”u ( x , 0 . 1 ) ”

Gnuplot niebanalnie Wrocław, 11 października 2010 42 / 68

Page 51: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Dane z pliku

Skala logarytmiczna

set logscale x - oś OX w skalilogarytmicznej

set logscale y - oś OY w skalilogarytmicznej

set logscale y - wykres w skalilog(x),log(y)

s e t l o g s c a l e xyp ’ l aw i n y . t x t ’ u 1 : 2

Zmienne i własne funkcjeZmienne:gnup lot> a=p i /exp (1 )gnup lot> b=5gnup lot> pr a+b6.15572734979092gnup lot> p a∗x+b

Funkcje:gnup lot> f ( x , y)=a∗exp ( x+y )gnup lot> pr f ( 0 , 1 )3.14159265358979gnup lot> w( x , a , b)=a∗x∗∗3+b∗x∗∗2gnup lot> p w( x ,1 ,−1)

Gnuplot niebanalnie Wrocław, 11 października 2010 43 / 68

Page 52: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Dane z pliku

Funkcje kolumn

Przyjmujemy następującą strukturę pliku z danymi:x y z u ( x ) u ( y ) u ( z )

using 1:2:(1.1) trzecia kolumna ma stałą wartość 1,1 niezależnie od pliku(np. stała wartość xerrorbars)

using 1:(log($2)) narysowanie wykresu w skali pół logarytmicznej

us ing 1 : 2 : ( $1−Dx1 ) : ( $1+Dx2 ) : ( $2−Dy1 ) : ( $2+Dy2) w x y e r r o r b a r s

rysowanie niepewności stałej dla wszystkich punktów ale różnej w ”górę” i”dół”

us ing f 1 ( $1 , $2 , . . . , C1 ) : f 2 ( $1 , $2 , . . . , C2 ) : . . . : f n ( $1 , $2 , . . . , Cn)

gdzie fi to dowolna funkcja kolumn a C1 to dowolna stała.

Gnuplot niebanalnie Wrocław, 11 października 2010 44 / 68

Page 53: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Fitowanie

FitowanieFitowanie - dopasowywanie funkcji do danych pomiarowych Schemat działania:

1 Zgadujemy wzór funkcji, która opisuje dane pomiarowef ( x)=a∗x+b

Powyższa funkcja zależy od dwóch parametrów a i b

2 Fitujemy:f i t f ( x ) ’ wyn i k i . dat ’ u 2 : 3 v i a a , b

Gnuplot używa metody najmniejszych kwadratów (algorytm Marquardta-Levenberga). Znalezione wartości parametrów zostają do nich przypisane

3 Rysujemy:

p ’ wyn i k i . dat ’ u 2 : 3 , f ( x )

Ćwiczenie nr 57, I pracownia −→

Gnuplot niebanalnie Wrocław, 11 października 2010 45 / 68

Page 54: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Fitowanie

FitowanieFitowanie - dopasowywanie funkcji do danych pomiarowych Schemat działania:

1 Zgadujemy wzór funkcji, która opisuje dane pomiarowef ( x)=a∗x+b

Powyższa funkcja zależy od dwóch parametrów a i b

2 Fitujemy:f i t f ( x ) ’ wyn i k i . dat ’ u 2 : 3 v i a a , b

Gnuplot używa metody najmniejszych kwadratów (algorytm Marquardta-Levenberga). Znalezione wartości parametrów zostają do nich przypisane

3 Rysujemy:

p ’ wyn i k i . dat ’ u 2 : 3 , f ( x )

Ćwiczenie nr 57, I pracownia −→

Gnuplot niebanalnie Wrocław, 11 października 2010 45 / 68

Page 55: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Fitowanie

FitowanieFitowanie - dopasowywanie funkcji do danych pomiarowych Schemat działania:

1 Zgadujemy wzór funkcji, która opisuje dane pomiarowef ( x)=a∗x+b

Powyższa funkcja zależy od dwóch parametrów a i b

2 Fitujemy:f i t f ( x ) ’ wyn i k i . dat ’ u 2 : 3 v i a a , b

Gnuplot używa metody najmniejszych kwadratów (algorytm Marquardta-Levenberga). Znalezione wartości parametrów zostają do nich przypisane

3 Rysujemy:

p ’ wyn i k i . dat ’ u 2 : 3 , f ( x )

Ćwiczenie nr 57, I pracownia −→

Gnuplot niebanalnie Wrocław, 11 października 2010 45 / 68

Page 56: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Fitowanie

Wynik polecenia fit

Znalezione wartościwszystkich parametróworaz ich niepewności.Wynik możemy uznać,za wiarygodny gdy ”naoko” dobrze przybliżadane pomiarowe orazgdy niepewności(Asymptotic StandardError) są <15 %

Gnuplot niebanalnie Wrocław, 11 października 2010 46 / 68

Page 57: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Fitowanie

Wynik polecenia fit

Final sum of squares:

WSSR =N∑i=1

(yi−f(xi))2

Wariancja:

V =1NWSSR

Dla obu parametrów immniejsza wartość, tymlepsze dopasowanie.

Gnuplot niebanalnie Wrocław, 11 października 2010 46 / 68

Page 58: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Fitowanie

Wynik polecenia fit

NDF=N-parametry

Gnuplot niebanalnie Wrocław, 11 października 2010 46 / 68

Page 59: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Fitowanie

Przykład - doświadczenie Cavendisha1

Spodziewamy się, że dane pomiarowe można przybliżyć funkcją:

θ(t) = θ0 + a exp(−t

τ) sin(

2πtT+ φ)

a - amplituda oscylacjiφ - początkowa faza

τ - szybkość zanikuT - okres oscylacji

θ0 - początkoweprzesunięcie

Aby znalezienie parametrów a, φ, τ, T, θ0było możliwe musimy zasugerować ichwartości. Np:

a = 40

τ = 15

φ = −0, 5

T = 15

θ = 10

1Dane pomiarowe z strony [3]Gnuplot niebanalnie Wrocław, 11 października 2010 47 / 68

Page 60: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Fitowanie

Przykład - doświadczenie Cavendisha1

th e t a ( t ) = the ta0 + a∗exp(− t / tau )∗ s i n (2∗ p i ∗ t /T + ph i )a = 40tau = 15ph i = −0.5T = 15the ta0 = 10f i t t h e t a ( x ) ” ca v end i s h . data ” us ing 1 : 2 : 3 v i a a , tau , phi , T, th e t a0p l o t [ : ] [ − 4 0 : 5 0 ] ” c a v end i s h . data ” with y e r r o r b a r s , t h e t a ( x ) lw 2

Aby znalezienie parametrów a, φ, τ, T, θ0było możliwe musimy zasugerować ichwartości. Np:

a = 40

τ = 15

φ = −0, 5

T = 15

θ = 10

1Dane pomiarowe z strony [3]Gnuplot niebanalnie Wrocław, 11 października 2010 47 / 68

Page 61: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Fitowanie

Wagi

f(x) = (x+ 3, 14)(1 + rand()−0,510

)g(x) = (x+ 5, 50)

(1 + rand()−0,510

)Niepewności wartości obu funkcji sąróżne

u(f(xi)) = 0, 5 ; u(g(xi)) = 5

Waga danego punktu wi = 1u(f(xi))2

fitowanie bez wag - linia zielona fit(x)f i t ( x)=a1∗x+b1f i t f i t ( x ) ’ p l i k ’ u 1 : 2 v i a a1 , b1

fitowanie z wagami - linia niebieska wfit(x)w f i t ( x)=a2∗x+b2f i t w f i t ( x ) ’ p l i k ’ u 1 : 2 : 3 v i a a2 , b2

Gnuplot niebanalnie Wrocław, 11 października 2010 48 / 68

Page 62: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Zaawansowane możliwości

Tryb multiplot

Tryb multiplot umożliwia rysowanie kilku wykresów (o różnych typach iparametrach) na jednym płótnie.

gnup lot> s e t mu l t i p l o tmu l t i p l o t> unse t keymu l t i p l o t> p [− p i : p i ] s i n ( x ) lw 2mu l t i p l o t> s e t samples 5mu l t i p l o t> p [− p i : p i ] s i n ( x ) l c 2 lw 2mu l t i p l o t> s e t pa ramet r i cmu l t i p l o t> s e t samples 200mu l t i p l o t> p s i n (2∗ t ) , cos (3∗ t ) l c 3 lw 2

Gnuplot niebanalnie Wrocław, 11 października 2010 49 / 68

Page 63: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Zaawansowane możliwości

Tryb multiplot

set rmargin 0 - brak prawego marginesu

set size square 0.3 - osie wykresów 2Dw równych proporcjach, wielkość wykresu0.3 całego płótna

set origin 0.1,0.1 - położenie wykresuna płótnie

s e t n o x t i cs e t n o y t i cs e t n o z t i cs e t nokeys e t rmarg in 0s e t lma rg i n 0s e t samples 100s e t mu l t i p l o ts e t s i z e squa r e 0 .3s e t o r i g i n 0 . 1 , 0 . 1p x∗∗2s e t pa ramet r i cs e t o r i g i n 0 . 1 , 0 . 5p s i n (3∗ t ) , cos (4∗ t )un se t paramet r i cs e t i s o samp l e s 100 ,100s e t s i z e 0 . 5 , 1 . 0s e t o r i g i n 0.35 ,−0.05s e t t i c s l e v e l 0s e t pm3ds e t hidden3dsp [− p i /2 : p i /2][− p i /2 : p i /2 ]( x∗∗2+y ∗∗2)∗ cos ( x∗∗2+y ∗∗2)

Gnuplot niebanalnie Wrocław, 11 października 2010 50 / 68

Page 64: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Zaawansowane możliwości

Sensowne zastosowanie multiplot

gnup lot> s e t mu l t i p l o tmu l t i p l o t> unse t keymu l t i p l o t> p [− p i : p i ] s i n ( x ) lw 2mu l t i p l o t> s e t samples 5mu l t i p l o t> p [− p i : p i ] s i n ( x ) l c 2 lw 2mu l t i p l o t> s e t pa ramet r i cmu l t i p l o t> s e t samples 200mu l t i p l o t> p s i n (2∗ t ) , cos (3∗ t ) l c 3 lw 2

Gnuplot niebanalnie Wrocław, 11 października 2010 51 / 68

Page 65: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Zaawansowane możliwości

Rysowanie wykresów łączonych

Problem: Chcemy narysować funkcję nieciągłą określoną na rozłącznychprzedziałach

f(x) ={0 dla x < 01 dla x ­ 0

Konstrukcja warunkowa:f ( x ) = ( warunek1 ) ? i n s t r u k c j a 1 :

( warunek2 ) ? i n s t r u k c j a 2 :i n t r u k c j a 3

ifelse ifelse

f ( x )=(x<0) ? 0 : 1p [ −1 : 1 ] [ −0 . 1 : 1 . 1 ] f ( x )

g ( x )=(x<0) ? −s i n ( x ) :( x<1) ? x∗∗2 : 1/x

Gnuplot niebanalnie Wrocław, 11 października 2010 52 / 68

Page 66: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Zaawansowane możliwości

Rysowanie wykresów łączonych - funkcje nieciągłe

Aby narysować nieciągłość używamysymbolu nieoznaczonego 1/0:

f 1 ( x )=(x<0) ? 0 : 1/0f2 ( x )=(x>=0) ? 1 : 1/0p [ −1 : 1 ] [ −0 . 1 : 1 . 1 ] f 1 ( x ) l s 1 ,f 2 ( x ) l s 1

Gnuplot niebanalnie Wrocław, 11 października 2010 53 / 68

Page 67: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Zaawansowane możliwości

Przykład zastosowania

f(x) ∼ 1/x, g(x) ∼ ax2 + bx+ c, h(x) ∼ cos(x)

Chcemy znaleźć wzór funkcjig(x). Problemy:

1 fitowanie jedynie naprzedziale [0, 1]

2 rysowanie znalezionejfunkcji jedynie na tymprzedziale

Rozwiązania:

1 l i m i t l o w ( x , low )=(x>low ) ? x :1/0l i m i t h i g h ( x , h igh )=(x<h igh ) ? x : 1/0l i m i t ( x , low , h igh )= l i m i t l o w ( l i m i t h i g h ( x , h igh ) , low )f ( x)=a∗x∗∗2+b∗x+cf i t f ( x ) ’ f i t 2 . t x t ’ u ( l i m i t ( $1 , 0 , 1 ) ) : 2 v i a a , b , c

2 oraz:g ( x )=(x>0 && x<1) ? f ( x ) : 1/0p [ : ] [ − 0 . 5 : 2 ] ’ f i t 2 . t x t ’ w p ps 0 .5 pt 7 , g ( x ) lw 2 l c ’ b l a c k ’

Gnuplot niebanalnie Wrocław, 11 października 2010 54 / 68

Page 68: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Zaawansowane możliwości

Przykład zastosowania

Chcemy znaleźć wzór funkcjig(x). Problemy:

1 fitowanie jedynie naprzedziale [0, 1]

2 rysowanie znalezionejfunkcji jedynie na tymprzedziale

Rozwiązania:

1 l i m i t l o w ( x , low )=(x>low ) ? x :1/0l i m i t h i g h ( x , h igh )=(x<h igh ) ? x : 1/0l i m i t ( x , low , h igh )= l i m i t l o w ( l i m i t h i g h ( x , h igh ) , low )f ( x)=a∗x∗∗2+b∗x+cf i t f ( x ) ’ f i t 2 . t x t ’ u ( l i m i t ( $1 , 0 , 1 ) ) : 2 v i a a , b , c

2 oraz:g ( x )=(x>0 && x<1) ? f ( x ) : 1/0p [ : ] [ − 0 . 5 : 2 ] ’ f i t 2 . t x t ’ w p ps 0 .5 pt 7 , g ( x ) lw 2 l c ’ b l a c k ’

Gnuplot niebanalnie Wrocław, 11 października 2010 54 / 68

Page 69: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Zaawansowane możliwości

Gnuplot jako narzędzie do wizualizacji danych (Linux)

Przykład Przybliżenie całki Riemanna dla funkcji∫ π0 sinxdx - animacja

Program C++:#inc l u d e <i o s t r eam>#inc l u d e <cmath>#inc l u d e <c s t d l i b>us ing namespace s t d ;i n t main ( ){double wa r t o s c c a l k i =2;double war to sc =0;double x=0;cout << ” s e t y range [ 0 : 1 ] \n” ;cout << ” unse t key ” << end l ;f o r ( i n t p o d z i a l =1; pod z i a l <100; p o d z i a l++){war tosc =0;double d=M PI/ p o d z i a l ;f o r ( i n t i =0; i<p o d z i a l ; i++){x=M PI/ p o d z i a l∗ i ;wa r to sc+=s i n ( x)∗d ;

}cout << ” s e t t i t l e ’ Pod z i a l : ” << p o d z i a l <<” dok l adnosc : ” << war tosc / w a r t o s c c a l k i<< ” ’\n” ;cout << ” s e t samples ” << p o d z i a l << ”\n” ;cout << ”p [ 0 : p i ] s i n ( x ) w boxes ” << end l ;system ( ” s l e e p 0 .05 ” ) ;}

}

1 Tworzenie pliku FIFO:[ r a fa l@manhat tan ] $ mk f i f o k

2 Uruchomienie gnuplota z plikiem FIFO:wh i l e : ; do ( gnup l o t −p ) < k ; done

3 Kompilacja i uruchomienie programu:g++ riemann . cpp && ./ a . out > k

Efekt:

Gnuplot niebanalnie Wrocław, 11 października 2010 55 / 68

Page 70: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Zaawansowane możliwości

Gnuplot jako narzędzie do wizualizacji danych (Linux)

Przykład Przybliżenie całki Riemanna dla funkcji∫ π0 sinxdx - animacja

Program C++:#inc l u d e <i o s t r eam>#inc l u d e <cmath>#inc l u d e <c s t d l i b>us ing namespace s t d ;i n t main ( ){double wa r t o s c c a l k i =2;double war to sc =0;double x=0;cout << ” s e t y range [ 0 : 1 ] \n” ;cout << ” unse t key ” << end l ;f o r ( i n t p o d z i a l =1; pod z i a l <100; p o d z i a l++){war tosc =0;double d=M PI/ p o d z i a l ;f o r ( i n t i =0; i<p o d z i a l ; i++){x=M PI/ p o d z i a l∗ i ;wa r to sc+=s i n ( x)∗d ;

}cout << ” s e t t i t l e ’ Pod z i a l : ” << p o d z i a l <<” dok l adnosc : ” << war tosc / w a r t o s c c a l k i<< ” ’\n” ;cout << ” s e t samples ” << p o d z i a l << ”\n” ;cout << ”p [ 0 : p i ] s i n ( x ) w boxes ” << end l ;system ( ” s l e e p 0 .05 ” ) ;}

}

1 Tworzenie pliku FIFO:[ r a fa l@manhat tan ] $ mk f i f o k

2 Uruchomienie gnuplota z plikiem FIFO:wh i l e : ; do ( gnup l o t −p ) < k ; done

3 Kompilacja i uruchomienie programu:g++ riemann . cpp && ./ a . out > k

Efekt:

Gnuplot niebanalnie Wrocław, 11 października 2010 55 / 68

Page 71: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Zaawansowane możliwości

Ten sam przykład - lepsze użycie pliku FIFOProgram C++:#inc l u d e <i o s t r eam>#inc l u d e <cmath>#inc l u d e <c s t d l i b>#inc l u d e <f s t r eam>#inc l u d e <s t r i n g>us ing namespace s t d ;

i n t main ( ){double wa r t o s c c a l k i =2;double war to sc =0;double x=0;s t r i n g k o l e j k a=”k” ;o f s t r e am gp ( k o l e j k a . c s t r ( ) ) ;gp << ” s e t s i z e 0 . 6 , 0 . 5 \n” ;gp << ” s e t y range [ 0 : 1 ] \n” ;gp << ” unse t key ” << end l ;f o r ( i n t p o d z i a l =2; pod z i a l <100; p o d z i a l++){war tosc =0;double d=M PI/ p o d z i a l ;f o r ( i n t i =0; i<p o d z i a l ; i++){x=M PI/ p o d z i a l∗ i ;wa r to sc+=s i n ( x)∗d ;

}gp << ” s e t t i t l e ’ Pod z i a l : ” << p o d z i a l <<” dok l adnosc : ” << war tosc / w a r t o s c c a l k i<< ”% ’\n” ;gp << ” s e t samples ” << p o d z i a l << ”\n” ;gp << ”p [ 0 : p i ] s i n ( x ) w boxes ” << end l ;system ( ” s l e e p 0 .05 ” ) ;}gp . c l o s e ( ) ;

}

1 Tworzenie pliku FIFO:[ r a fa l@manhat tan ] $ mk f i f o k

2 Uruchomienie gnuplota z plikiem FIFO:gnup lo t −p k

3 Kompilacja i uruchomienie programu:g++ rieman . 2 . cpp && ./ a . out

Gnuplot niebanalnie Wrocław, 11 października 2010 56 / 68

Page 72: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Zaawansowane możliwości

Przykład: Model ewolucji

Problem: Wizualizacja prostego modelu ewolucji.

1 Mamy jednowymiarową sieć o długości L,

2 Zapełniamy ją losowo liczbami z [0, 1],

3 Obliczamy średnią elementów: S = 0, 563. Znajdujemy najmniejszy element

4 Usuwamy go i jego sąsiadów. W ich miejsce losujemy ponownie liczby z [0, 1]

5 Wracamy do kroku 3. Iterację wykonujemy N -razy

Wizualizacja: W każdym kroku chcemy widzieć wartości przystosowań dlawszystkich węzłów oraz histogram S(t)

Gnuplot niebanalnie Wrocław, 11 października 2010 57 / 68

Page 73: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Zaawansowane możliwości

Przykład: Model ewolucji

Problem: Wizualizacja prostego modelu ewolucji.

1 Mamy jednowymiarową sieć o długości L,

2 Zapełniamy ją losowo liczbami z [0, 1],

3 Obliczamy średnią elementów: S = 0, 563. Znajdujemy najmniejszy element

4 Usuwamy go i jego sąsiadów. W ich miejsce losujemy ponownie liczby z [0, 1]

5 Wracamy do kroku 3. Iterację wykonujemy N -razy

Wizualizacja: W każdym kroku chcemy widzieć wartości przystosowań dlawszystkich węzłów oraz histogram S(t)

Gnuplot niebanalnie Wrocław, 11 października 2010 57 / 68

Page 74: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Zaawansowane możliwości

Przykład: Model ewolucji

Problem: Wizualizacja prostego modelu ewolucji.

1 Mamy jednowymiarową sieć o długości L,

2 Zapełniamy ją losowo liczbami z [0, 1],

3 Obliczamy średnią elementów: S = 0, 563. Znajdujemy najmniejszy element

4 Usuwamy go i jego sąsiadów. W ich miejsce losujemy ponownie liczby z [0, 1]

5 Wracamy do kroku 3. Iterację wykonujemy N -razy

Wizualizacja: W każdym kroku chcemy widzieć wartości przystosowań dlawszystkich węzłów oraz histogram S(t)

Gnuplot niebanalnie Wrocław, 11 października 2010 57 / 68

Page 75: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Zaawansowane możliwości

Przykład: Model ewolucji

Problem: Wizualizacja prostego modelu ewolucji.

1 Mamy jednowymiarową sieć o długości L,

2 Zapełniamy ją losowo liczbami z [0, 1],

3 Obliczamy średnią elementów: S = 0, 563. Znajdujemy najmniejszy element

4 Usuwamy go i jego sąsiadów. W ich miejsce losujemy ponownie liczby z [0, 1]

5 Wracamy do kroku 3. Iterację wykonujemy N -razy

Wizualizacja: W każdym kroku chcemy widzieć wartości przystosowań dlawszystkich węzłów oraz histogram S(t)

Gnuplot niebanalnie Wrocław, 11 października 2010 57 / 68

Page 76: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Zaawansowane możliwości

Przykład: Model ewolucji

Problem: Wizualizacja prostego modelu ewolucji.

1 Mamy jednowymiarową sieć o długości L,

2 Zapełniamy ją losowo liczbami z [0, 1],

3 Obliczamy średnią elementów: S = 0, 563. Znajdujemy najmniejszy element

4 Usuwamy go i jego sąsiadów. W ich miejsce losujemy ponownie liczby z [0, 1]

5 Wracamy do kroku 3. Iterację wykonujemy N -razy

Wizualizacja: W każdym kroku chcemy widzieć wartości przystosowań dlawszystkich węzłów oraz histogram S(t)

Gnuplot niebanalnie Wrocław, 11 października 2010 57 / 68

Page 77: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Zaawansowane możliwości

Przykład rozwiązania

Tworzymy 3 pliki:

k - plik FIFO instrukcje dla gnuplota

e.dat - stan sieci wykres stan(wezel)

histogram.dat wykres S(t), tryb ios::app

. . . .s t r i n g k o l e j k a=”k” ;s t r i n g p l i k d a n e=”e . dat ” ;o f s t r e am gp ( k o l e j k a . c s t r ( ) ) ;o f s t r e am gp2 ( ” h i s tog ram . dat ” ) ;gp2 . c l o s e ( ) ;o f s t r e am gp3 ( ” h i s tog ram . dat ” , i o s : : app ) ;. . . .

Gnuplot niebanalnie Wrocław, 11 października 2010 58 / 68

Page 78: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Zaawansowane możliwości

Przykład rozwiązania

#S − s i e c , g−g en e r a t o rf o r ( i n t i =0; i <5000; i++){S . a n a l i z u j ( ) ;S . t [ S . min]=g . l o s ( ) ;i f (S . min !=0)S . t [ S . min−1]=g . l o s ( ) ;i f (S . min!=S . L−1)S . t [ S . min+1]=g . l o s ( ) ;

S . z a p i s z ( p l i k d a n e ) ;gp3 << S . s r e d n i a << end l ;gp << ” s e t t e rm i n a l x11\n” ;gp << ” s e t mu l t i p l o t \n” ;gp << ” s e t s i z e 1 . 0 , 1 . 0\ n” ;gp << ” s e t o r i g i n 0 ,0\n” ;gp << ”p [ : ] [ 0 : 1 ] ’ ” << p l i k d a n e<< ” ’ w p o i n t s pt 5 , ” << S . s r e d n i a << ”\n” ;gp << ” s e t s i z e 0 . 9 , 0 . 3\ n” ;gp << ” s e t o r i g i n 0 . 05 , 0 . 05\ n” ;gp << ”p ’ h i s tog ram . dat ’ w l i n e s l c 3 \n” ;gp << ” unse t mu l t i p l o t ” << end l ;system ( ” s l e e p 0 .02 ” ) ;

}

Gnuplot niebanalnie Wrocław, 11 października 2010 59 / 68

Page 79: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Zaawansowane możliwości

Przykład rozwiązaniaKompilacja:g++ ewo lu c j a . cpp && ./ a . out

Uruchomienie gnuplota:gnup l o t −p k

Efekt (dla L = 200, t = 500):

Gnuplot niebanalnie Wrocław, 11 października 2010 60 / 68

Page 80: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Przykłady z życia

Przykłady z życia - Lifter

s e t g r i ds e t key o u t s i d e bmargins e t key h o r i z o n t a ls e t y 2 t i c s borders e t y 2 l a b e l ” Na te z en i e I [mA] ” f on t ”Times , 11 ”s e t x l a b e l ”Ob i a z en i e m [mg] ” f on t ”Times , 11 ”s e t y l a b e l ” Nap i e c i e U [ kV ] ” f on t ”Times , 11 ”s e t t i t l e ”L3 Za l e zno s c U i I od o b c i a z e n i a ” f o n t ”Times , 13 ”up ( x)=aup∗x+bupum( x)=aum∗x+bumi p ( x)=a i p ∗x+b ipim ( x)=aim∗x+bimf i t up ( x ) ’ L3 . p . t x t ’ u 1 :2 v i a aup , bupf i t um( x ) ’ L3 .m. t x t ’ u 1 :2 v i a aum , bumf i t i p ( x ) ’ L3 . p . t x t ’ u 1 : 3 v i a a ip , b i pf i t im ( x ) ’ L3 .m. t x t ’ u 1 : 3 v i a aim , bimp ’ L3 . p . t x t ’ u 1 : 2 : 4 w y e r r o r b a r s t i t l e ”Nap i e c i e , korona +” l t 1 ,up ( x ) l t 1 n o t i t l e ,’ L3 . p . t x t ’ u 1 : 3 : 5 w y e r r o r b a r s axe s x1y2 t i t l e ”Natezen ie , korona +” l t 2 ,i p ( x ) l t 2 n o t i t l e axe s x1y2 ,’ L3 .m. t x t ’ u 1 : 2 : 4 w y e r r o r b a r s t i t l e ”Nap i e c i e , korona −” l t 3 ,um( x ) n o t i t l e l t 3 ,’ L3 .m. t x t ’ u 1 : 3 : 5 w y e r r o r b a r s axe s x1y2 t i t l e ”Natezen ie , korona −” l t 4 ,im ( x ) axe s x1y2 l t 4 n o t i t l e

Gnuplot niebanalnie Wrocław, 11 października 2010 61 / 68

Page 81: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Przykłady z życia

Przykłady z życia - Lifter

Gnuplot niebanalnie Wrocław, 11 października 2010 62 / 68

Page 82: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Przykłady z życia

Przykłady z życia - Lifter

s e t x l a b e l ”OX”s e t y l a b e l ”OY”s e t z l a b e l ”E”s e t view 60 ,30s e t pm3ds e t dgr id3d 80 ,80s e t p a l e t t e r gb f o rmu l a e −21,−22,−23s e t hidden3dse t t i c s l e v e l 0s e t t e rm ina l wxts e t contours e t c l a b e ls e t s t y l e data l i n e ss e t cntrparam l e v e l s d i s c r e t e 30 ,70 ,110 ,150sp [ : ] [ : ] [ : ] ’ p o l e . 3 d kwadrat . z0 . poprawka . t x t ’ u 1 : 2 : 7

Gnuplot niebanalnie Wrocław, 11 października 2010 63 / 68

Page 83: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Przykłady z życia

Przykłady z życia - Lifter

Wartość natężenia polaelektrycznego tuż naddolną elektrodąkwadratowego liftera.(listing powyżej)

Wartość natężenia polaw odległości 0.5 nadpowierzchnią skrzydłaliftera.

Gnuplot niebanalnie Wrocław, 11 października 2010 64 / 68

Page 84: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Przykłady z życia

Przykłady z życia - Promieniowanie

s e t p a l e t t es e t hidden3dse t p o i n t s i z e 2 .0s e t x l a b e l ”OX”s e t y l a b e l ”OY”s e t z l a b e l ””s e t t i c s l e v e l 0s e t xrange [−2 : 2 ]s e t yrange [−2 : 2 ]s e t zrange [−1 : 1 ]s e t view 70 , 24 , 1 , 1s e t t i t l e ”Rozk lad katowy promien iowan ia p r zy v=0.5 c”

f on t ”Times−Roman ,15 ”sp ’ r o z k l a d . l a rmor . h−11. v0 . 5 . t10 . 9 9 5 6 . dat ’ u 1 : 2 : 3 : 4 w p p a l e t t e

Gnuplot niebanalnie Wrocław, 11 października 2010 65 / 68

Page 85: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Przykłady z życia

Przykłady z życia - Lifter

Kątowy rozkład mocypromieniowaniaobliczonej z wzoruLarmora przy prędkości0, 1c

Kątowy rozkład mocypromieniowaniaobliczonej z wzoruLarmora przy prędkości0, 5c(listing powyżej)

Gnuplot niebanalnie Wrocław, 11 października 2010 66 / 68

Page 86: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Literatura

Literatura

1 http://t16web.lanl.gov/Kawano/gnuplot/index-e.html

2 http://www.dynamicnetservices.com/~will/gnuplot

3 http://www.cs.hmc.edu/~vrable/gnuplot/using-gnuplot.html

Gnuplot niebanalnie Wrocław, 11 października 2010 67 / 68

Page 87: Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki ...

Literatura

Dziękuję za uwagę

Gnuplot niebanalnie Wrocław, 11 października 2010 68 / 68