Gnuplot

Linux.fista
Versio hetkellä 18. syyskuuta 2007 kello 23.30 – tehnyt Heikki (keskustelu | muokkaukset) (→‎Linkkejä: jyun opas)
Siirry navigaatioon Siirry hakuun

Gnuplot on komentorivipohjainen ohjelma numeerisen tiedoston muuntamiseksi graafiseksi 2D- tai 3D-esitykseksi.

Lämpötilan kuvaaja

Peruskäyttö

 
Funktion sin(x)/x kuvaaja

Gnuplotin voi käynnistää komentoriviltä, jonka jälkeen gnuplot> -kehotteen perään syötetään tulostuskäskyt yksi kerrallaan. Monimutkaisemmat tulosteet kannattaa kuitenkin tehdä erillisiksi ajettaviksi tiedostoiksi.

$ gnuplot
       G N U P L O T
       --
Terminal type set to 'x11'
gnuplot> plot sin(x)/x
gnuplot> exit

Alueen rajaaminen

Piirtoalue voidaan rajata tietylle välille seuraavasti:

set xrange [0:10]

Tämä piirtäisi funktion kuvaajan, kun 0<=x<=10. Vastaavasti alue voidaan rajoittaa myös y:n arvojen suhteen komennolla

set yrange [3:4]

jolloin kuvaajasta piirrettäisiin se osa, jossa y-koordinaatti on välillä 3<=y<=4.

Potenssit

Gnuplotin kanssa käytetään potenssimerkkinä kahta kertomerkkiä, esimerkiksi kuvaaja y=x^2 piirrettäisiin komennolla

plot x**2

Komennot

Komento Selitys
exit/quit Lopettaa ohjelman
cd Vaihtaa työhakemistoa
pwd Näyttää nykyisen hakemiston
set Muuttaa asetuksia
show Näyttää asetuksien nykyisiä arvoja
plot Piirtää 2D-kuvaajan
splot Piirtää 3D-kuvaajan
replot Suorittaa uudelleen edellisen plot/splot-komennon
fit Sovittaa käyrän pistejoukkoon
save Tallentaa muuttujia, funktioita ja asetuksia
load Lataa save-komennolla tallennetun tiedostoston
reset Palauttaa oletusasetukset
pause Tauko

Käyrän sovitus pistejoukkoon

Gnuplot osaa sovittaa mielivaltaisia käyriä pistejoukkoon ja se osaa huomioida myös pisteiden virherajat. Pisteet annetaan omassa tiedostossa, jossa jokaisella rivillä on joko välilyönnillä tai sarkaimella (tabulaattorilla) erotettuna pisteen koordinaatit ja mahdollisesti myös virherajat.

Esimerkiksi sovitetaan suora seuraavaan, suunnilleen lineaariseen pistejoukkoon. Tehdään tiedosto mittaus.dat seuraavalla tavalla:

#mittaus.dat
#x      y       xvirhe  yvirhe
3       68      0.1     1
4       71.2    0.2     2
5       70      0.15    6
5.5     76.6    0.1     0.5
7.1     81.1    0.2     1
8.2     86.5    0.2     2
9       89      2       3

Nyt tämä pistejoukko voitaisiin yksinkertaisesti piirtää plot-komennolla seuraavasti

plot "mittaus.dat"

Jolloin Gnuplot piirtää pisteet ja valitsee alueen rajat siten, että kaikki pisteet mahtuvat alueelle.

Kuvaan saadaan näkymään virheet lisäämällä komennon perään tekstin with xyerrorbars. with-komennolla on mahdollista lisätä kuvaajaan muitakin elementtejä. Esimerkiksi seuraavat elementit ovat mahdollisia:

Elementti Selitys
xyerrorbars Virherajat x- ja y-suunnassa
xerrorbars, yerrorbars Vain x- tai y-suuntaiset virerajat
lines Viiva pisteestä pisteeseen
boxxyerrorbars Virherajat laatikkoina
points Datapisteet (oletus)

Varsinainen sovitus

Jos piirrämme pistejoukkoon käyrän komennolla

plot "mittaus.dat" with lines

huomataan, että pisteet ovat likimain samalla suoralla, mutta kuvaajassa pisteet on vaan yhdistetty toisiinsa mutkittelevalla viivalla. Voimme kuitenkin sovittaa tähän pistejoukkoon suoran tai minkä tahansa mielivaltaisen funktion seuraavasti.

Määritellään ensin funktio f(x):

f(x)=A*x+B

y=A*x+B siis on suoran yhtälö, joten olemme sovittamassa suoraa. Gnuplot selvittää vakiot A ja B.

Varsinainen sovitus tehdään komennolla

fit f(x) "mittaus.dat" via A,B

Eli fit-komennolle annetaan funktio, joka sovitetaan pistejoukkoon ja via-komennolla kerrotaan vakiot, jotka Gnuplotin tulee selvittää.

Tämä komento tulostaa paljon tekstiä kertoen etenemisestään ja kertoo lopulta, millaiseen käyrään se päätyi:

Final set of parameters            Asymptotic Standard Error
=======================            ==========================

A               = 3.66307          +/- 0.3708       (10.12%)
B               = 55.6119          +/- 2.34         (4.208%)


correlation matrix of the fit parameters:

               A      B      
A               1.000 
B              -0.946  1.000 

Nyt kun sovitus on tehty, voidaan sovitettu kuvaaja piirtää pistejoukkoon komennolla

plot f(x)

Sillä fit-komento on asettanut f(x):n vakioille A ja B arvot. Jos samaan kuvaan halutaan piirtää myös datapisteet ja niiden virherajat, komento on

plot "mittaus.dat" with xyerrorbars,f(x)

Tässä siis oikeastaan piirretään kaksi kuvaajaa, jotka erotetaan toisistaan pilkulla.

Linkkejä