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

gnuplot i qtiplot

Embed Size (px)

Citation preview

Page 1: gnuplot i qtiplot

Analizowanie danych

Katarzyna Grzelak

listopad 2014

K.Grzelak (IFD UW) 1 / 24

Page 2: gnuplot i qtiplot

Wprowadzenie

Programy do opracowywania danych doswiadczalnych (rysowaniefunkcji, punktów z błedami, dopasowywanie zaleznosci funkcyjnych dodanych . . . ):

gnuplotdarmowy, dostepny dla systemów operacyjnych Linux (zwykle wstandardowej dystrybucji !) i Windowspolecenia wpisywane jak w terminalu lub zapisywane wpliku-skrypcie (!)niewyszukana grafikaw OKWF’ie uruchamiany z terminala poleceniem gnuplotstrona www http://www.gnuplot.info/

K.Grzelak (IFD UW) 2 / 24

Page 3: gnuplot i qtiplot

Wprowadzenie

Programy do opracowywania danych doswiadczalnych (rysowaniefunkcji, punktów z błedami, dopasowywanie zaleznosci funkcyjnych dodanych . . . ):

qtiplotna Linux’ie bardzo prosty w instalacji (gotowa wersja egzekucyjna,nie trzeba instalowac dodatkowych bibliotek), Windows - wersjademo, pełna wersja płatnagraficzne srodowisko, łatwe w uzyciuw OKWF’ie uruchamiany z terminala poleceniem qtiplot(uruchamianie z menu - aktualnie starsza wersja)strona www http://www.qtiplot.com/darmowa alternatywa dla programów typu Origin

Originkomercyjny program, licencja (Windows) Wydziału Fizyki dlastudentów WF, licencja MISMaP dla studentów MISMaP

. . .

K.Grzelak (IFD UW) 3 / 24

Page 4: gnuplot i qtiplot

qtiplot - wprowadzenie

qtiploturuchamianie z terminala poleceniem qtiplot→ otwiera siesesja graficznaNowe zadanieFile → New → New Project albo skrót Ctrl+Nrysunki mozna modyfikowac klikajac prawym klawiszem naposzczególne elementy albo uzywajac odpowiedniego menu albodwukrotnie klikajac na rysunek

K.Grzelak (IFD UW) 4 / 24

Page 5: gnuplot i qtiplot

qtiplot - rysowanie funkcji

Rysowanie funkcji: File → New → New Function Plotalbo skrót Ctrl+FProgram oblicza wartosc funkcji w tylu punktach ile wpiszemy jakowartosc PointsDodawanie kolejnej funkcji do rysunku: Graph → AddFunction albo Ctrl+Alt+F

Legenda: Graph → New Legend albo Ctrl+L

K.Grzelak (IFD UW) 5 / 24

Page 6: gnuplot i qtiplot

qtiplot - rysowanie kilku rysunków obok siebie

Najprosciej: Zaznaczenie kolumn do rysowania lewym klawiszemmyszy→ pojawia sie menu do rysowania: Plot → Panel→ . . .Druga wersja: Graph → Add Layer (klikniecie Guessspowoduje dodanie drugiego rysunku obok pierwszego)Wybranie pustego rysunku i Graph → Add/Remove Curvepozwala wybrac tabele z danymi do narysowania

K.Grzelak (IFD UW) 6 / 24

Page 7: gnuplot i qtiplot

qtiplot - wczytywanie danych z pliku

Tworzenie nowej tablicy do wpisywania danych:File → New → New Table albo skrót Ctrl+TWczytywanie danych z pliku do tabeli:File → Import → Import Ascii albo skrót Ctrl+K(Simplify white spaces)Zaznaczenie kolumn do rysowania lewym klawiszem myszy→pojawia sie menu do rysowania: Plot → Line,Plot →Scatter, ldotspozycje kolumn w tabelce mozna zamieniac klikajac na nagłówekkolumny i przesuwajac goDodawanie błedów:Graph → Add Error Bars albo skrót Ctrl+B

K.Grzelak (IFD UW) 7 / 24

Page 8: gnuplot i qtiplot

Dopasowywania zaleznosci funkcyjnych do danych

Metoda najmniejszych kwadratów:Poszukiwanie wartosci parametrów a1, . . . ,al , które minimalizujawyrazenie:

X 2 =n∑

i=1

[yi − f (x ;a1, . . . ,al)]2

σ2i

f - dopasowywana funkcjayi - wynik pomiaruσi - bład pomiaru yi

Jakosc dopasowania: χ2/liczba_stopni_swobody

K.Grzelak (IFD UW) 8 / 24

Page 9: gnuplot i qtiplot

qtiplot - dopasowywanie funkcji do danych

Analyze → Fit Wizard albo skrót Ctrl+YDopasowywanie predefiniowanej funkcji:Built-in, Fit using built-in function

Dopasowywanie własnej funkcji:User defined

operatory: aˆb (potegowanie), a*b (mnozenie), a/b (dzielenie, a-b,a+b . . .przy definicji własnych funkcji mozna korzystac z funkcji z menuBasic: abs(x), sin(x), cos(x), tan(x),exp(x),sqrt(x) ...

Uzycie niepewnosci pomiarowych→ Weighting →Arbitrary Dataset→Wybieramy odpowiednia tabele iodpowiednia kolumne

K.Grzelak (IFD UW) 9 / 24

Page 10: gnuplot i qtiplot

qtiplot - dopasowywanie funkcji do danychKolejne kroki:

1 nowy projekt2 wczytywanie danych ( z pliku (Import) lub reczne wpisywanie do

tabelki )3 rysowanie (Plot→ Scatter)4 dodanie błedów na rysunku (Add)5 zmiana opisu osi, modyfikacja legendy . . .6 Analyze → Fit Wizard albo skrót Ctrl+Y7 definicja własnej funkcji (lub wybranie którejs z poczatkowo

zdefiniowanych); postac własnej funkcji mozna zapisac8 ustawienie poczatkowych wartosci parametrów9 uzycie niepewnosci pomiarowych: Weighting → Arbitrary

Dataset→ wybieramy odpowiednia tabele i odpowiednia kolumne10 Fit

11 Sprawdzenie jakosci dopasowania ! (Chiˆ2/doF . . . )

K.Grzelak (IFD UW) 10 / 24

Page 11: gnuplot i qtiplot

qtiplot - zapisywanie wyników

Zapisywanie wyników

1 zapisanie rysunku Export (Export → Layer to zapisywanie jednegorysunku, wazne jesli w oknie jest wiecej niz jeden rysunek)

2 duzo mozliwych formatów zapisu rysunku: (pdf, png, jpg, tex)(przy wstawianiu rysunku do latex’a trzeba dodac pakiet tikz)

3 zapisanie projektu: File → Save Project albo skrót Ctrl+S

K.Grzelak (IFD UW) 11 / 24

Page 12: gnuplot i qtiplot

Polecenia programu gnuplot

Polecenia sa wprowadzane interakcyjnie albo zapisywane wpliku-skrypcieuruchamianie: gnuplotgnuplot> load ”skrypt.gp”

gnuplot -persist skrypt.gp

Rozrózniane sa wielkie i małe literyWszystkie nazwy polecen mozna skrócic (tak długo jak skrótpolecenia jest jednoznaczny)Opcje polecen musza byc podawane w okreslonej kolejnosci

K.Grzelak (IFD UW) 12 / 24

Page 13: gnuplot i qtiplot

gnuplot -zapisywanie napisów i liczb

Napisy zapisywane sa w pojedynczych lub podwójnychapostrofach: ”dane.dat”Liczby całkowite: 1, 15Liczby rzeczywiste: 1.,15.,1E0,1.5E1,5E-1Uwaga na wynik dzielenia liczb całkowitych, np. 1/2 = 0

K.Grzelak (IFD UW) 13 / 24

Page 14: gnuplot i qtiplot

gnuplot - funkcje, operatory

Zdefiniowane funkcje:abs(x), sin(x), cos(x), tan(x), exp(x),sqrt(x)...

Własne definicje funkcji, np.: a(x − b)2

f(x)=a*(x-b)**2

Operatory: a**b (potegowanie), a*b (mnozenie), a/b (dzielenie,a-b, a+b . . .

K.Grzelak (IFD UW) 14 / 24

Page 15: gnuplot i qtiplot

gnuplot - rysowanie funkcji

plot sin(x)set samples 10plot sin(x) lub replot

Program oblicza wartosc funkcji w tylu punktach ile ustawimypoleceniem set samples

Powrót do domyslnych ustawien: reseta=5;b=6h(x)=a*x+bplot h(x)

g(x)=cos(a*x)plot a=0.2,g(x),a=0.4, g(x)

K.Grzelak (IFD UW) 15 / 24

Page 16: gnuplot i qtiplot

gnuplot - rysowanie funkcji

skala logarytmiczna:plot exp(-x)set logscale yreplot

dwa rysunki na jednym:plot sin(x),cos(x)

K.Grzelak (IFD UW) 16 / 24

Page 17: gnuplot i qtiplot

gnuplot - rysowanie funkcji

plot sin(x) with pointsplot sin(x) with boxesplot sin(x) with linesplot sin(x) with impulsesplot [-3.14:3.14] sin(x)

K.Grzelak (IFD UW) 17 / 24

Page 18: gnuplot i qtiplot

gnuplot - rysowanie funkcji, postac parametryczna

Przykład. Krzywa zdefiniowana w nastepujacy sposób:{x = 5 cos ty = 2 sin t

set parametricset xrange [-6:6]set yrange [-6:6]set trange [0:10]set isosamples 60plot 5*cos(t),2*sin(t)

K.Grzelak (IFD UW) 18 / 24

Page 19: gnuplot i qtiplot

gnuplot - rysowanie funkcji w 3D

splot sin(x*y)set hidden3dset isosamples 30,30replotset xrange[-3:3]set yrange[-3:3]set zrange[-2:5]

set parametricsplot 2*u,u**2+v,v**2

K.Grzelak (IFD UW) 19 / 24

Page 20: gnuplot i qtiplot

gnuplot - dane z błedami i bez

plot ”dane.dat”

plot ”dane.dat” with errorbars

plot ”dane.dat” with xyerrorbars

plot ”dane.dat” using 1:2:3 w ye

plot ”dane.dat” using 2:1:3 w xe

plot ”dane1.dat” u ($1+$4):5 with lines,”dane2.dat” u ($1+$4):($15-$17) w l axes x1y2

plot ”dane1.dat” u ($1+$4):5 with lines title”Dane1”, ”dane2.dat” u ($1+$4):($15-$17) w laxes x1y2 title ”Dane2” (zmiana legendy)

K.Grzelak (IFD UW) 20 / 24

Page 21: gnuplot i qtiplot

gnuplot - opcje dla jednego i dwóch rysunków

set title ” Beams ”

set xlabel ” Energy [GeV] ”

set ylabel ” p1[GeV] ”

set y2label ” p1[GeV] ”

set y2tics

set ytics nomirror

set tics out

set key

unset key lub set nokey

replot

K.Grzelak (IFD UW) 21 / 24

Page 22: gnuplot i qtiplot

gnuplot - zapisywanie do pliku

set output ”sin.eps”

set terminal postscript eps color

plot sin(x) lub replot

set output

set terminal X11

Takze set terminal latex i inneW Linux’ie epstopdf sin.eps

K.Grzelak (IFD UW) 22 / 24

Page 23: gnuplot i qtiplot

gnuplot - dopasowywanie krzywych

Dopasowywanie zaleznosci funkcyjnych do danych doswiadczalnych.Kolejne etapy:

Definicja funkcjinp. ft(x)=a*x**2+b*x+cDefiniowanie poczatkowych wartosci parametrów (tak aby funkcjamozliwie najlepiej opisywała dane)np. a=15; b=2.5; c=1.5

Sprawdzenie jak dobrze te parametry zostały wybranenp. plot ”dane.dat” w e, ft(x)

Dopasowanie (uwaga - przy opcji using musza byc zdefiniowanedokładnie (!) 3 kolumny, trzecia kolumna to błedy y)np. fit ft(x) ”dane.dat” using 1:2:3 via a,b,cSprawdzenie jakosci dopasowania:

Wizualnenp. plot ”dane.dat” w e, ft(x)Sprawdzenie czy χ2/liczba_stopni_swobody jest bliskie 1

K.Grzelak (IFD UW) 23 / 24

Page 24: gnuplot i qtiplot

gnuplot - zmiana warunków konca iteracji

Przykłady zmian warunków na zakonczenie poszukiwania minimumwyliczanej funkcji:

FIT_LIMIT = 1e-6FIT_MAXITER = 50

K.Grzelak (IFD UW) 24 / 24