87
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

Gnuplot niebanalnie Przewodnik po gnuplocie dla studenta fizyki

Embed Size (px)

Citation preview

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

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

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

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

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

Wstęp

Interfejs

Linux Windows

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Wykresy 3D

Wpływ isosamplesisosamples 20 isosamples 50

isosamples 100 isosamples 200

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Fitowanie

Wynik polecenia fit

NDF=N-parametry

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Przykłady z życia

Przykłady z życia - Lifter

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

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

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

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

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

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

Literatura

Dziękuję za uwagę

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