Ero sivun ”Gnuplot” versioiden välillä

Linux.fista
Siirry navigaatioon Siirry hakuun
p (→‎Virherajojen huomioiminen sovituksessa: normaali käyttäytyminen sovitusohjelmalta ottaa vain y:n virhe)
p (pientä viilailua)
Rivi 1: Rivi 1:
[[Kuva:gnuplot_esim.png|200px|right|thumb|Lämpötilan kuvaaja]]
[[Kuva:gnuplot_esim.png|200px|right|thumb|Lämpötilan kuvaaja]]
Gnuplot on [[Portaali:Komentorivi | komentorivipohjainen]] ohjelma numeerisen tiedoston muuntamiseksi graafiseksi 2D- tai 3D-esitykseksi.
Gnuplot on ammattitasoinen [[Portaali:Komentorivi | komentorivipohjainen]] ohjelma funktioiden kuvaajien ja numeerisen datan piirtämiseen 2D- tai 3D-esityksiksi. Sitä käytetään yleisesti esimerkiksi tuottamaan kuvaajia tieteellisiin artikkeleihin.


== Peruskäyttö ==
== Peruskäyttö ==
[[Kuva:gnuplot_sinx_x.png|200px|right|thumb|Funktion sin(x)/x kuvaaja]]
[[Kuva:gnuplot_sinx_x.png|200px|right|thumb|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.  
Gnuplotin voi käynnistää komentoriviltä, jonka jälkeen <tt>gnuplot></tt>-kehotteen perään syötetään tulostuskäskyt yksi kerrallaan. Monimutkaisemmat tulosteet kannattaa kuitenkin tehdä erillisiksi ajettaviksi tiedostoiksi.  


GNuplot käynnistetään komennolla
Gnuplot käynnistetään komennolla
  gnuplot
  gnuplot
jonka jälkeen aukeaa ohjelman päänäyttö, ja yleensä kerrotaan, että käytetään "x11":a eli graafista käyttöliittymää kuvaajien piirtämiseen (Gnuplot osaa piirtää tarvittaessa myös tekstimuotoisia kuvaajia):
jonka jälkeen aukeaa ohjelman päänäyttö, ja yleensä kerrotaan, että käytetään "x11":a eli graafista käyttöliittymää kuvaajien piirtämiseen (Gnuplot osaa piirtää tarvittaessa myös tekstimuotoisia kuvaajia):
Rivi 93: Rivi 93:
Lopulta kuvaajan tulostaminen tähän tiedostoon tapahtuu normaalisti komennolla <tt>plot</tt>.
Lopulta kuvaajan tulostaminen tähän tiedostoon tapahtuu normaalisti komennolla <tt>plot</tt>.


== Käyrän sovitus pistejoukkoon ==
== Numeerisen datan piirtäminen ja 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.
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.


Rivi 136: Rivi 136:
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.
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):
Määritellään ensin sovitettava funktio <tt>f(x)</tt>:
  f(x)=A*x+B
  f(x)=A*x+B
<tt>y=A*x+B</tt> siis on suoran yhtälö, joten olemme sovittamassa suoraa. Gnuplot selvittää vakiot A ja B.
<tt>y=A*x+B</tt> siis on suoran yhtälö, joten olemme sovittamassa suoraa. Gnuplot selvittää vakiot A ja B.
Rivi 161: Rivi 161:
Eli pistejoukkoon sovitetun suoran yhtälö on <tt>3,66307*x+55,6119</tt>. Kulmakertoimen virhe on <tt>+/- 0,3708</tt> ja vakiotermin <tt>+/- 2,34</tt>.
Eli pistejoukkoon sovitetun suoran yhtälö on <tt>3,66307*x+55,6119</tt>. Kulmakertoimen virhe on <tt>+/- 0,3708</tt> ja vakiotermin <tt>+/- 2,34</tt>.


Nyt kun sovitus on tehty, voidaan sovitettu kuvaaja piirtää pistejoukkoon komennolla
Nyt kun sovitus on tehty, voidaan sovitettu kuvaaja piirtää komennolla
  plot f(x)
  plot f(x)
[[Kuva:Gnuplot-sovitettu.png|thumb|250px|right|Lopullinen kuvaaja]]
[[Kuva:Gnuplot-sovitettu.png|thumb|250px|right|Lopullinen kuvaaja]]
Sillä <tt>fit</tt>-komento on asettanut f(x):n vakioille A ja B arvot. Jos samaan kuvaan halutaan piirtää myös datapisteet ja niiden virherajat, komento on
Sillä <tt>fit</tt>-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)
  plot "mittaus.dat" with xyerrorbars,f(x)
Tässä siis oikeastaan piirretään kaksi kuvaajaa, jotka erotetaan toisistaan pilkulla.
Tässä siis piirretään kaksi kuvaajaa, jotka erotetaan toisistaan pilkulla.


=== Virherajojen huomioiminen sovituksessa ===
=== Virherajojen huomioiminen sovituksessa ===
Oletuksena Gnuplot ei huomioi pisteille asetettuja virhetermejä käyrää sovittaessaan. Sovitukseen voidaan kuitenkin asettaa jokaista pisteparia vastaamaan tietty painokerroin joka kuvaa pisteen virherajoja. Sovituksessa annettava virhetermi on y-koordinaatin keskihajonta/virhe (kuten monet muutkin sovitusohjelmat, Gnuplot osaa huomioida vain y-koordinaatin virheen). Gnuplot asettaa pisteparin painokertoimeksi <tt>1/s^2</tt>, missä s on annettu keskihajonta.
Oletuksena Gnuplot ei huomioi pisteille asetettuja virhetermejä käyrää sovittaessaan. Sovitukseen voidaan kuitenkin asettaa jokaista pisteparia vastaamaan tietty painokerroin joka kuvaa pisteen virherajoja. Sovituksessa annettava virhetermi on y-koordinaatin keskihajonta/virhe (kuten monet muutkin sovitusohjelmat, Gnuplot osaa huomioida vain y-koordinaatin virheen). Gnuplot asettaa pisteparin painokertoimeksi <tt>1/s^2</tt>, missä s on annettu virhe.


Käytännössä tämä tapahtuu siten, että sovituskomennossa kerrotaan Gnuplotille missä tiedoston sarakkeessa virhetermi on. Jos edellä olevassa esimerkissä päättäisimme, että voimme jättää x-koordinaatin virheen huomioon ottamatta, kertoisimme virheen olevan tiedoston 4. sarakkeessa jolloin sovitus tapahtuisi komennolla
Käytännössä tämä tapahtuu siten, että sovituskomennossa kerrotaan Gnuplotille, missä tiedoston sarakkeessa virhetermi on. Jos edellä olevassa esimerkissä päättäisimme, että voimme jättää x-koordinaatin virheen huomioon ottamatta, kertoisimme virheen olevan tiedoston 4. sarakkeessa jolloin sovitus tapahtuisi komennolla
  fit f(x) "mittaus.dat" using 1:2:4 via A,B
  fit f(x) "mittaus.dat" using 1:2:4 via A,B
Tässä siis parametri <tt>using 1:2:4</tt> kuvaa tiedoston rakenteen: ensimmäisessä sarakkeessa on x-koordinaatti, toisessa y-koordinaatti ja neljännessä y-koordinaatin keskihajonta.
Tässä siis parametri <tt>using 1:2:4</tt> kuvaa tiedoston rakenteen: ensimmäisessä sarakkeessa on x-koordinaatti, toisessa y-koordinaatti ja neljännessä y-koordinaatin keskihajonta.
Rivi 177: Rivi 177:
Lisätietoja sovitustoiminnosta löytyy Gnuplotin ohjeista komennolla
Lisätietoja sovitustoiminnosta löytyy Gnuplotin ohjeista komennolla
  help fit
  help fit
== Katso myös ==
*[[Octave]]


==Aiheesta muualla==
==Aiheesta muualla==
*[http://www.gnuplot.info/ Ohjelman kotisivu]
*[http://www.gnuplot.info/ Ohjelman kotisivu]
*[http://www.jyu.fi/science/laitokset/fysiikka/opiskelu/tyoosasto/gnuplot.pdf Jyväskylän yliopiston Gnuplot-opas]
*[http://www.jyu.fi/science/laitokset/fysiikka/opiskelu/tyoosasto/gnuplot.pdf Jyväskylän yliopiston fysiikan laitoksen Gnuplot-opas]
 
[[Luokka:Tiedeohjelmat]]
[[Luokka:Tiedeohjelmat]]

Versio 2. huhtikuuta 2009 kello 07.20

Lämpötilan kuvaaja

Gnuplot on ammattitasoinen komentorivipohjainen ohjelma funktioiden kuvaajien ja numeerisen datan piirtämiseen 2D- tai 3D-esityksiksi. Sitä käytetään yleisesti esimerkiksi tuottamaan kuvaajia tieteellisiin artikkeleihin.

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 käynnistetään komennolla

gnuplot

jonka jälkeen aukeaa ohjelman päänäyttö, ja yleensä kerrotaan, että käytetään "x11":a eli graafista käyttöliittymää kuvaajien piirtämiseen (Gnuplot osaa piirtää tarvittaessa myös tekstimuotoisia kuvaajia):

       G N U P L O T
       --
Terminal type set to 'x11'
gnuplot>

Seuraavaksi voidaan kirjoittaa Gnuplotin komentoja ohjelman omaan käyttöliittymään. Tavallinen kuvaaja xy-koordinaatistoon piirretään komennolla plot funktio, esimerkiksi:

gnuplot> plot sin(x)/x

Jos halutaan piirtää useampia funktioita, erotellaan ne pilkulla:

plot x,sin(x),sin(x)/x

Piirtyvässä ikkunassa kuvaajat ovat oletuksena erivärisiä ja värien selitykset löytyvät oikeasta ylänurkasta.

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

Piirtäminen parametriesityksestä

Gnuplot mahdollistaa myös funktioiden esittämisen parametrimuodossa. Aluksi on asetettava Gnuplot parametritilaan komennolla

set parametric

Nyt voidaan piirtää kuvaaja syntaksilla

plot [alaraja:yläraja] x(t),y(t)

Esimerkiksi piirretään ellipsin, jonka vaakasuora puoliakseli on 2 ja pystysuora 1:

plot [0:pi*2] 2*cos(t),sin(t)

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

Tulostus tiedostoon

Gnuplot osaa piirtää kuvaajat myös tiedostoon. Se onnistuu valitsemalla päätteen tyypiksi esimerkiksi png komennolla

set term png

Muita mahdollisia arvoja ovat esimerkiksi jpeg, postscript ja latex. Täydellisen listan saat näkyviin komennolla help set term.

Tämän jälkeen asetetaan tulostettavan tiedoston nimi komennolla

set output "tiedosto.png"

Lopulta kuvaajan tulostaminen tähän tiedostoon tapahtuu normaalisti komennolla plot.

Numeerisen datan piirtäminen ja 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 sovitettava 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 

Eli pistejoukkoon sovitetun suoran yhtälö on 3,66307*x+55,6119. Kulmakertoimen virhe on +/- 0,3708 ja vakiotermin +/- 2,34.

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

plot f(x)
Lopullinen kuvaaja

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 piirretään kaksi kuvaajaa, jotka erotetaan toisistaan pilkulla.

Virherajojen huomioiminen sovituksessa

Oletuksena Gnuplot ei huomioi pisteille asetettuja virhetermejä käyrää sovittaessaan. Sovitukseen voidaan kuitenkin asettaa jokaista pisteparia vastaamaan tietty painokerroin joka kuvaa pisteen virherajoja. Sovituksessa annettava virhetermi on y-koordinaatin keskihajonta/virhe (kuten monet muutkin sovitusohjelmat, Gnuplot osaa huomioida vain y-koordinaatin virheen). Gnuplot asettaa pisteparin painokertoimeksi 1/s^2, missä s on annettu virhe.

Käytännössä tämä tapahtuu siten, että sovituskomennossa kerrotaan Gnuplotille, missä tiedoston sarakkeessa virhetermi on. Jos edellä olevassa esimerkissä päättäisimme, että voimme jättää x-koordinaatin virheen huomioon ottamatta, kertoisimme virheen olevan tiedoston 4. sarakkeessa jolloin sovitus tapahtuisi komennolla

fit f(x) "mittaus.dat" using 1:2:4 via A,B

Tässä siis parametri using 1:2:4 kuvaa tiedoston rakenteen: ensimmäisessä sarakkeessa on x-koordinaatti, toisessa y-koordinaatti ja neljännessä y-koordinaatin keskihajonta.

Lisätietoja sovitustoiminnosta löytyy Gnuplotin ohjeista komennolla

help fit

Katso myös

Aiheesta muualla