Ero sivun ”Gnuplot” versioiden välillä
p (→Virherajojen huomioiminen sovituksessa: normaali käyttäytyminen sovitusohjelmalta ottaa vain y:n virhe) |
p (siirto luokkaan) |
||
(21 välissä olevaa versiota 6 käyttäjän tekeminä ei näytetä) | |||
Rivi 1: | Rivi 1: | ||
{{DISPLAYTITLE:{{lcfirst:{{PAGENAME}}}}}} | |||
[[Kuva:gnuplot_esim.png|200px|right|thumb|Lämpötilan kuvaaja]] | [[Kuva:gnuplot_esim.png|200px|right|thumb|Lämpötilan kuvaaja]] | ||
'''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 <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 | 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 13: | Rivi 14: | ||
Terminal type set to 'x11' | Terminal type set to 'x11' | ||
gnuplot> | gnuplot> | ||
Seuraavaksi voidaan kirjoittaa | X11:n sijaan voidaan käyttää myös <tt>wxt</tt>-päätettä, joka tarjoaa monipuolisemmat säätömahdollisuudet. Se on monesti käytössä oletuksena ja voidaan tarvittaessa ottaa käyttöön komennolla <tt>set term wxt</tt>. | ||
Seuraavaksi voidaan kirjoittaa gnuplotin komentoja ohjelman omaan käyttöliittymään. Tavallinen kuvaaja xy-koordinaatistoon piirretään komennolla <tt>plot funktio</tt>, esimerkiksi: | |||
gnuplot> plot sin(x)/x | gnuplot> plot sin(x)/x | ||
Jos halutaan piirtää useampia funktioita, erotellaan ne pilkulla: | Jos halutaan piirtää useampia funktioita, erotellaan ne pilkulla: | ||
Rivi 19: | Rivi 23: | ||
Piirtyvässä ikkunassa kuvaajat ovat oletuksena erivärisiä ja värien selitykset löytyvät oikeasta ylänurkasta. | Piirtyvässä ikkunassa kuvaajat ovat oletuksena erivärisiä ja värien selitykset löytyvät oikeasta ylänurkasta. | ||
=== Merkinnät === | |||
Tavallisia matemaattisia merkintöjä ja funktioita voi käyttää normaalisti. Peruslaskutoimitukset (+-*/ ja sulut) toimivat normaalisti. Potenssiin korotuksessa käytetään kahta tähteä: funktio y=x^2 piirrettäisiin komennolla <tt>plot x**2</tt>. | |||
Myös tavallisimmat matemaattiset funktiot toimivat totutusti, näitä ovat mm. trigonometriset funktiot (<tt>sin(x)</tt>, <tt>cos(x)</tt>, <tt>tan(x)</tt>, <tt>sinh(x)</tt>, <tt>asin(x)</tt>, <tt>asinh(x)</tt> jne.) Eksponenttifunktiolle (e^x) käytetään merkintää <tt>exp(x)</tt>. Täydellinen funktiolista löytyy [http://www.gnuplot.info/docs/node53.html Gnuplotin dokumentaatiosta]. | |||
=== Alueen rajaaminen === | === Alueen rajaaminen === | ||
Rivi 26: | Rivi 35: | ||
set yrange [3:4] | set yrange [3:4] | ||
jolloin kuvaajasta piirrettäisiin se osa, jossa y-koordinaatti on välillä 3<=y<=4. | jolloin kuvaajasta piirrettäisiin se osa, jossa y-koordinaatti on välillä 3<=y<=4. | ||
=== Piirtäminen parametriesityksestä === | === Piirtäminen parametriesityksestä === | ||
ggnuplotnuplot mahdollistaa myös funktioiden esittämisen parametrimuodossa. Aluksi on asetettava Gnuplot parametritilaan komennolla | |||
set parametric | set parametric | ||
Nyt voidaan piirtää kuvaaja syntaksilla | Nyt voidaan piirtää kuvaaja syntaksilla | ||
Rivi 38: | Rivi 43: | ||
Esimerkiksi piirretään ellipsin, jonka vaakasuora puoliakseli on 2 ja pystysuora 1: | Esimerkiksi piirretään ellipsin, jonka vaakasuora puoliakseli on 2 ja pystysuora 1: | ||
plot [0:pi*2] 2*cos(t),sin(t) | plot [0:pi*2] 2*cos(t),sin(t) | ||
=== Pintojen piirtäminen === | |||
Kolmiulotteisia kuvaajia on mahdollista piirtää komennolla <tt>splot</tt>. Komennolle annetaan parametrina piirrettävän pinnan lauseke muodossa <tt>f(x,y)</tt>, jolloin funktion arvo on pinnan z-koordinaatti kyseisessä pisteessä. Esimerkiksi piirretään [[wikipedia:fi:paraboloidi|paraboloidi]]: | |||
splot -x**2-y**2 | |||
Huomaa, että gnuplotin piirtämää kuvaa voi käännellä painamalla [[hiiri|hiiren]] ykköspainikkeen pohjaan ja liikuttamalla hiirtä. | |||
Pintoja voi piirtää myös parametrimuodossa, jolloin syntaksi on sama kuin kaksiulotteisessa tapauksessa mutta parametreja on kaksi: <tt>u</tt> ja <tt>v</tt>. Esimerkiksi piirretään [[wikipedia:fi:torus|torus]]: | |||
splot [0:pi*2] (2+cos(v))*cos(u),(2+cos(v))*sin(u),sin(v) | |||
=== Tasa-arvokäyrät === | |||
Tasa-arvokäyrien piirtäminen tapahtuu kytkemällä niiden piirtäminen päälle komennolla | |||
set contour | |||
Tämän jälkeen piirrettäessä pintaa gnuplot piirtää myös tasa-arvokäyriä. Pinta voidaan jättää piirtämättä antamalla komento | |||
unset surface | |||
Tasa-arvokäyrien määrään voi vaikuttaa komennolla | |||
set cntrparam levels käyrien_määrä | |||
Tasa-arvokäyrien määrän sijasta voi valita myös käyrien arvot: | |||
set cntrparam levels incremental -1, 0.2, 1 | |||
Ensimmäinen luku on pienin arvo jolla käyrä piirretään, keskimmäinen luku kahden käyrän arvon erotus ja viimeinen luku suurin arvo. | |||
=== Komennot === | === Komennot === | ||
Rivi 83: | Rivi 107: | ||
|Tauko | |Tauko | ||
|} | |} | ||
Komennoissa ja niiden parametreissa riittää kirjoittaa jokaisen sanan alkuosaa sen verran, että alkuosa yksilöi tietyn komennon. Esimerkiksi seuraavat komennot toimivat samoin: | |||
plot sin(x) title "Sini" | |||
pl sin(x) t "Sini" | |||
== Ääkköset == | |||
gnuplot tukee [[UTF-8]]-merkistön käyttöä versiosta 4.4 alkaen, joten ääkköset ja muut erikoismerkit voi kirjoittaa sellaisenaan. UTF-8:aa käytetään yleensä automaattisesti oletuksena, jos myös muu käyttöympäristö käyttää sitä, mutta halutessaan UTF-8-enkoodauksen voi pakottaa päälle komentamalla aivan aluksi | |||
set encoding utf8 | |||
Vanhemmat versiot eivät tue UTF-8-merkistöä, joten skandien ja muiden erikoismerkkien käyttö on hieman hankalaa. Skandeja ei voi syöttää suoraan tekstiin vaan ne tulee antaa numerokoodeina. Esimerkiksi 'ä':n numerokoodi on 344 joten x-akselille asetettaisiin otsikko "Jännite" komennolla | |||
set xlabel "J\344nnite" | |||
Huomaa, että kaikki gnuplot-päätteet (joista lisää seuraavassa kappaleessa) eivät välttämättä osaa ainakaan oletusasetuksilla näyttää ääkkösiä. | |||
Skandien koodit ovat seuraavat: | |||
*å - 345 | |||
*Å - 305 | |||
*ä - 344 | |||
*Ä - 304 | |||
*ö - 366 | |||
*Ö - 326 | |||
Huomaa, että merkkijono ei saa päättyä erikoismerkkiin. Esimerkiksi sana "testiä" asetettaisiin x-akselin otsikoksi lisäämällä sen perään vielä välilyönti: <tt>set xlabel "testi\344 "</tt> | |||
== Tulostus tiedostoon == | == Tulostus tiedostoon == | ||
gnuplot osaa piirtää kuvaajat myös tiedostoon. Se onnistuu valitsemalla päätteen (engl. ''terminal'') tyypiksi esimerkiksi <tt>png</tt> komennolla | |||
set term png | set term png | ||
Muita mahdollisia arvoja ovat esimerkiksi <tt>jpeg</tt>, <tt>postscript</tt> ja <tt>[[latex]]</tt>. Täydellisen listan saat näkyviin komennolla <tt>help set term</tt>. | Muita mahdollisia arvoja ovat esimerkiksi <tt>jpeg</tt>, <tt>postscript</tt> ja <tt>[[latex]]</tt>. Täydellisen listan saat näkyviin komennolla <tt>help set term</tt>. | ||
Rivi 91: | Rivi 135: | ||
Tämän jälkeen asetetaan tulostettavan tiedoston nimi komennolla | Tämän jälkeen asetetaan tulostettavan tiedoston nimi komennolla | ||
set output "tiedosto.png" | set output "tiedosto.png" | ||
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>. Yllämainitun sijaan voit myös tulostaa kuvan vasemmasta ylälaidassa olevasta "gnuplot graph" tagista oikealla hiirennäppäimellä "options" ja sieltä "copy clipboard" . Tämän jälkeen voit siirtää kuvan grafiikkaohjelmaan normaalisti copy/paste. Tapa on helpompi erityisesti värikuvia käsitellessä. | ||
=== Postscript-päätteestä === | |||
Tavallisten kuvien (<tt>jpeg</tt>, <tt>png</tt> jne) tuottamisen lisäksi käytetään yleisesti <tt>postscript</tt>-päätettä. Postscript-tiedostojen etu on se, että niissä kuva on tallennettu vektorigrafiikkana joten sitä voidaan suurentaa ja pienentää laadun kärsimättä. Erityisen suositeltavaa Postscript-kuvien käyttö on [[LaTeX]]ia käytettäessä, jolloin Postscript-muotoinen tiedosto voidaan helposti liittää osaksi dokumenttia (pdflatexia käytettäessä tiedosto voidaan muuntaa ensin pdf-muotoon komennolla <tt>[[ps2pdf]] tiedosto.ps</tt>). Uusimmat Gnuplotin versiot osaavat myös tuottaa suoraan Pdf-tiedostoja (<tt>set term pdf</tt>) joita voidaan käyttää myös LaTeXin kanssa. | |||
Postscript-päätettä käytettäessä kannattaa antaa sille asetus <tt>enhanced</tt> komennolla | |||
set term postscript enhanced solid | |||
jolloin käyttöön tulee ominaisuuksiltaan laajennettu Postscript-pääte. Laajennettu versio tukee mm. joitain erikoismerkkejä (kts. kappale ''Ääkköset'') ja LaTeX-muotoiluja (esimerkiksi potenssit voidaan merkitä muodossa a^b, jolloin b päätyy yläindeksiin). Ilman valintaa <tt>solid</tt> kuvaajat tulostuvat katkoviivana. | |||
== | == 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: | Esimerkiksi sovitetaan suora seuraavaan, suunnilleen lineaariseen pistejoukkoon. Tehdään tiedosto mittaus.dat seuraavalla tavalla: | ||
Rivi 108: | Rivi 159: | ||
Nyt tämä pistejoukko voitaisiin yksinkertaisesti piirtää <tt>plot</tt>-komennolla seuraavasti | Nyt tämä pistejoukko voitaisiin yksinkertaisesti piirtää <tt>plot</tt>-komennolla seuraavasti | ||
plot "mittaus.dat" | plot "mittaus.dat" | ||
Jolloin | 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 <tt>with xyerrorbars</tt>. <tt>with</tt>-komennolla on mahdollista lisätä kuvaajaan muitakin elementtejä. Esimerkiksi seuraavat elementit ovat mahdollisia: | Kuvaan saadaan näkymään virheet lisäämällä komennon perään tekstin <tt>with xyerrorbars</tt>. <tt>with</tt>-komennolla on mahdollista lisätä kuvaajaan muitakin elementtejä. Esimerkiksi seuraavat elementit ovat mahdollisia: | ||
Rivi 119: | Rivi 170: | ||
|- | |- | ||
|<tt>xerrorbars</tt>, <tt>yerrorbars</tt> | |<tt>xerrorbars</tt>, <tt>yerrorbars</tt> | ||
|Vain x- tai y-suuntaiset | |Vain x- tai y-suuntaiset virherajat | ||
|- | |- | ||
|<tt>lines</tt> | |<tt>lines</tt> | ||
Rivi 136: | Rivi 187: | ||
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 142: | Rivi 193: | ||
Varsinainen sovitus tehdään komennolla | Varsinainen sovitus tehdään komennolla | ||
fit f(x) "mittaus.dat" via A,B | fit f(x) "mittaus.dat" via A,B | ||
Eli <tt>fit</tt>-komennolle annetaan funktio, joka sovitetaan pistejoukkoon ja <tt>via</tt>-komennolla kerrotaan vakiot, jotka | Eli <tt>fit</tt>-komennolle annetaan funktio, joka sovitetaan pistejoukkoon ja <tt>via</tt>-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: | Tämä komento tulostaa paljon tekstiä kertoen etenemisestään ja kertoo lopulta, millaiseen käyrään se päätyi: | ||
Rivi 161: | Rivi 212: | ||
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ää | 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 | Tässä siis piirretään kaksi kuvaajaa, jotka erotetaan toisistaan pilkulla. | ||
=== Virherajojen huomioiminen sovituksessa === | === Virherajojen huomioiminen sovituksessa === | ||
Oletuksena | Oletuksena gnuplot ei huomioi pisteille asetettuja virhetermejä käyrää sovittaessaan. Sovitukseen voidaan kuitenkin asettaa jokaista pisteparia vastaamaan tietty painokerroin joka kuvaa pisteen virherajoja. Kuten monet muutkin sovitusohjelmat, gnuplot osaa huomioida vain yhden virhetermin (eli painokertoimen). Jos sekä x:n että y:n virhe pitää huomioida sovituksessa, on käyttäjän yhdistettävä ne ensin käsin sopivaksi katsomallaan tavalla. gnuplot asettaa pisteparin painokertoimeksi sovituksessa <tt>1/s^2</tt>, missä s on annettu virhe. | ||
Käytännössä tämä tapahtuu siten, että sovituskomennossa kerrotaan | 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. | ||
Lisätietoja sovitustoiminnosta löytyy | Lisätietoja sovitustoiminnosta löytyy gnuplotin ohjeista komennolla | ||
help fit | help fit | ||
=== <tt>using</tt>-valitsimesta === | |||
Using-valitsimella on mahdollista tehdä muutakin kuin vain kertoa, mistä sarakkeesta datapisteitä otetaan. Sen lisäksi se mahdollistaa datapisteiden laskemisen tiedostossa olevien arvojen perusteella. | |||
Esimerkiksi jos y-koordinaatti olisi tiedostossa senttimetreinä ja se haluttaisiin kuvaajaan metreinä, täytyisi jokainen y-sarakkeen arvo jakaa sadalla. Tämän tekeminen käsin käy nopeasti työlääksi, joten tehdään muunnos lennossa käyttäen <tt>using</tt>-valitsinta: | |||
plot "mittaus.dat" using 1:($2/100) | |||
Eli tässä on sarakkeen sijasta kirjoitettu sulkuihin lauseke, jolla y-koordinaatti lasketaan. <tt>$2</tt> viittaa tiedoston toisen sarakkeen arvoon (vrt. edellä annettiin pelkkä numero 2 kun arvo otettiin suoraan tästä sarakkeesta). Suluissa annettavassa lausekkeessa voidaan käyttää vapaasti gnuplotin komentoja (esimerkiksi toimisi <tt>using 1:($1*sin($2))</tt>). | |||
== Katso myös == | |||
*[[Octave]] | |||
*[[QtiPlot]] | |||
==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: | |||
[[Luokka:Matematiikkaohjelmat]] |
Nykyinen versio 1. huhtikuuta 2020 kello 16.12
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ö[muokkaa]
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>
X11:n sijaan voidaan käyttää myös wxt-päätettä, joka tarjoaa monipuolisemmat säätömahdollisuudet. Se on monesti käytössä oletuksena ja voidaan tarvittaessa ottaa käyttöön komennolla set term wxt.
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.
Merkinnät[muokkaa]
Tavallisia matemaattisia merkintöjä ja funktioita voi käyttää normaalisti. Peruslaskutoimitukset (+-*/ ja sulut) toimivat normaalisti. Potenssiin korotuksessa käytetään kahta tähteä: funktio y=x^2 piirrettäisiin komennolla plot x**2.
Myös tavallisimmat matemaattiset funktiot toimivat totutusti, näitä ovat mm. trigonometriset funktiot (sin(x), cos(x), tan(x), sinh(x), asin(x), asinh(x) jne.) Eksponenttifunktiolle (e^x) käytetään merkintää exp(x). Täydellinen funktiolista löytyy Gnuplotin dokumentaatiosta.
Alueen rajaaminen[muokkaa]
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.
Piirtäminen parametriesityksestä[muokkaa]
ggnuplotnuplot 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)
Pintojen piirtäminen[muokkaa]
Kolmiulotteisia kuvaajia on mahdollista piirtää komennolla splot. Komennolle annetaan parametrina piirrettävän pinnan lauseke muodossa f(x,y), jolloin funktion arvo on pinnan z-koordinaatti kyseisessä pisteessä. Esimerkiksi piirretään paraboloidi:
splot -x**2-y**2
Huomaa, että gnuplotin piirtämää kuvaa voi käännellä painamalla hiiren ykköspainikkeen pohjaan ja liikuttamalla hiirtä.
Pintoja voi piirtää myös parametrimuodossa, jolloin syntaksi on sama kuin kaksiulotteisessa tapauksessa mutta parametreja on kaksi: u ja v. Esimerkiksi piirretään torus:
splot [0:pi*2] (2+cos(v))*cos(u),(2+cos(v))*sin(u),sin(v)
Tasa-arvokäyrät[muokkaa]
Tasa-arvokäyrien piirtäminen tapahtuu kytkemällä niiden piirtäminen päälle komennolla
set contour
Tämän jälkeen piirrettäessä pintaa gnuplot piirtää myös tasa-arvokäyriä. Pinta voidaan jättää piirtämättä antamalla komento
unset surface
Tasa-arvokäyrien määrään voi vaikuttaa komennolla
set cntrparam levels käyrien_määrä
Tasa-arvokäyrien määrän sijasta voi valita myös käyrien arvot:
set cntrparam levels incremental -1, 0.2, 1
Ensimmäinen luku on pienin arvo jolla käyrä piirretään, keskimmäinen luku kahden käyrän arvon erotus ja viimeinen luku suurin arvo.
Komennot[muokkaa]
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 |
Komennoissa ja niiden parametreissa riittää kirjoittaa jokaisen sanan alkuosaa sen verran, että alkuosa yksilöi tietyn komennon. Esimerkiksi seuraavat komennot toimivat samoin:
plot sin(x) title "Sini" pl sin(x) t "Sini"
Ääkköset[muokkaa]
gnuplot tukee UTF-8-merkistön käyttöä versiosta 4.4 alkaen, joten ääkköset ja muut erikoismerkit voi kirjoittaa sellaisenaan. UTF-8:aa käytetään yleensä automaattisesti oletuksena, jos myös muu käyttöympäristö käyttää sitä, mutta halutessaan UTF-8-enkoodauksen voi pakottaa päälle komentamalla aivan aluksi
set encoding utf8
Vanhemmat versiot eivät tue UTF-8-merkistöä, joten skandien ja muiden erikoismerkkien käyttö on hieman hankalaa. Skandeja ei voi syöttää suoraan tekstiin vaan ne tulee antaa numerokoodeina. Esimerkiksi 'ä':n numerokoodi on 344 joten x-akselille asetettaisiin otsikko "Jännite" komennolla
set xlabel "J\344nnite"
Huomaa, että kaikki gnuplot-päätteet (joista lisää seuraavassa kappaleessa) eivät välttämättä osaa ainakaan oletusasetuksilla näyttää ääkkösiä.
Skandien koodit ovat seuraavat:
- å - 345
- Å - 305
- ä - 344
- Ä - 304
- ö - 366
- Ö - 326
Huomaa, että merkkijono ei saa päättyä erikoismerkkiin. Esimerkiksi sana "testiä" asetettaisiin x-akselin otsikoksi lisäämällä sen perään vielä välilyönti: set xlabel "testi\344 "
Tulostus tiedostoon[muokkaa]
gnuplot osaa piirtää kuvaajat myös tiedostoon. Se onnistuu valitsemalla päätteen (engl. terminal) 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. Yllämainitun sijaan voit myös tulostaa kuvan vasemmasta ylälaidassa olevasta "gnuplot graph" tagista oikealla hiirennäppäimellä "options" ja sieltä "copy clipboard" . Tämän jälkeen voit siirtää kuvan grafiikkaohjelmaan normaalisti copy/paste. Tapa on helpompi erityisesti värikuvia käsitellessä.
Postscript-päätteestä[muokkaa]
Tavallisten kuvien (jpeg, png jne) tuottamisen lisäksi käytetään yleisesti postscript-päätettä. Postscript-tiedostojen etu on se, että niissä kuva on tallennettu vektorigrafiikkana joten sitä voidaan suurentaa ja pienentää laadun kärsimättä. Erityisen suositeltavaa Postscript-kuvien käyttö on LaTeXia käytettäessä, jolloin Postscript-muotoinen tiedosto voidaan helposti liittää osaksi dokumenttia (pdflatexia käytettäessä tiedosto voidaan muuntaa ensin pdf-muotoon komennolla ps2pdf tiedosto.ps). Uusimmat Gnuplotin versiot osaavat myös tuottaa suoraan Pdf-tiedostoja (set term pdf) joita voidaan käyttää myös LaTeXin kanssa.
Postscript-päätettä käytettäessä kannattaa antaa sille asetus enhanced komennolla
set term postscript enhanced solid
jolloin käyttöön tulee ominaisuuksiltaan laajennettu Postscript-pääte. Laajennettu versio tukee mm. joitain erikoismerkkejä (kts. kappale Ääkköset) ja LaTeX-muotoiluja (esimerkiksi potenssit voidaan merkitä muodossa a^b, jolloin b päätyy yläindeksiin). Ilman valintaa solid kuvaajat tulostuvat katkoviivana.
Numeerisen datan piirtäminen ja käyrän sovitus pistejoukkoon[muokkaa]
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 virherajat |
lines | Viiva pisteestä pisteeseen |
boxxyerrorbars | Virherajat laatikkoina |
points | Datapisteet (oletus) |
Varsinainen sovitus[muokkaa]
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)
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[muokkaa]
Oletuksena gnuplot ei huomioi pisteille asetettuja virhetermejä käyrää sovittaessaan. Sovitukseen voidaan kuitenkin asettaa jokaista pisteparia vastaamaan tietty painokerroin joka kuvaa pisteen virherajoja. Kuten monet muutkin sovitusohjelmat, gnuplot osaa huomioida vain yhden virhetermin (eli painokertoimen). Jos sekä x:n että y:n virhe pitää huomioida sovituksessa, on käyttäjän yhdistettävä ne ensin käsin sopivaksi katsomallaan tavalla. gnuplot asettaa pisteparin painokertoimeksi sovituksessa 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
using-valitsimesta[muokkaa]
Using-valitsimella on mahdollista tehdä muutakin kuin vain kertoa, mistä sarakkeesta datapisteitä otetaan. Sen lisäksi se mahdollistaa datapisteiden laskemisen tiedostossa olevien arvojen perusteella.
Esimerkiksi jos y-koordinaatti olisi tiedostossa senttimetreinä ja se haluttaisiin kuvaajaan metreinä, täytyisi jokainen y-sarakkeen arvo jakaa sadalla. Tämän tekeminen käsin käy nopeasti työlääksi, joten tehdään muunnos lennossa käyttäen using-valitsinta:
plot "mittaus.dat" using 1:($2/100)
Eli tässä on sarakkeen sijasta kirjoitettu sulkuihin lauseke, jolla y-koordinaatti lasketaan. $2 viittaa tiedoston toisen sarakkeen arvoon (vrt. edellä annettiin pelkkä numero 2 kun arvo otettiin suoraan tästä sarakkeesta). Suluissa annettavassa lausekkeessa voidaan käyttää vapaasti gnuplotin komentoja (esimerkiksi toimisi using 1:($1*sin($2))).