gnuplot i qtiplot
TRANSCRIPT
Analizowanie danych
Katarzyna Grzelak
listopad 2014
K.Grzelak (IFD UW) 1 / 24
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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