Ero sivun ”Gnuplot” versioiden välillä

Siirry navigaatioon Siirry hakuun
2 216 merkkiä lisätty ,  1. huhtikuuta 2020
p
siirto luokkaan
p (siirto luokkaan)
 
(12 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.
'''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.  
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 13: Rivi 14:
  Terminal type set to 'x11'
  Terminal type set to 'x11'
  gnuplot>
  gnuplot>
Seuraavaksi voidaan kirjoittaa Gnuplotin komentoja ohjelman omaan käyttöliittymään. Tavallinen kuvaaja xy-koordinaatistoon piirretään komennolla <tt>plot funktio</tt>, esimerkiksi:
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 33: Rivi 37:


=== Piirtäminen parametriesityksestä ===
=== Piirtäminen parametriesityksestä ===
Gnuplot mahdollistaa myös funktioiden esittämisen parametrimuodossa. Aluksi on asetettava Gnuplot parametritilaan komennolla
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 43: Rivi 47:
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]]:
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
  splot -x**2-y**2
Huomaa, että Gnuplotin piirtämää kuvaa voi käännellä painamalla [[hiiri|hiiren]] ykköspainikkeen pohjaan ja liikuttamalla hiirtä.
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]]:
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)
  splot [0:pi*2] (2+cos(v))*cos(u),(2+cos(v))*sin(u),sin(v)


Rivi 51: Rivi 55:
Tasa-arvokäyrien piirtäminen tapahtuu kytkemällä niiden piirtäminen päälle komennolla
Tasa-arvokäyrien piirtäminen tapahtuu kytkemällä niiden piirtäminen päälle komennolla
  set contour
  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
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
  unset surface
Tasa-arvokäyrien määrään voi vaikuttaa komennolla
Tasa-arvokäyrien määrään voi vaikuttaa komennolla
Rivi 103: 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 ==
== Ääkköset ==
Gnuplot ei 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
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"
  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ä.
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:
Skandien koodit ovat seuraavat:
Rivi 119: Rivi 129:


== Tulostus tiedostoon ==
== Tulostus tiedostoon ==
Gnuplot osaa piirtää kuvaajat myös tiedostoon. Se onnistuu valitsemalla päätteen (engl. ''terminal'') tyypiksi esimerkiksi <tt>png</tt> komennolla
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 125: 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ä ===
=== Postscript-päätteestä ===
Rivi 131: Rivi 141:


Postscript-päätettä käytettäessä kannattaa antaa sille asetus <tt>enhanced</tt> komennolla
Postscript-päätettä käytettäessä kannattaa antaa sille asetus <tt>enhanced</tt> komennolla
  set term postscript enhanced
  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).
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 ==
== 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.


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 149: 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 Gnuplot piirtää pisteet ja valitsee alueen rajat siten, että kaikki pisteet mahtuvat alueelle.
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 160: Rivi 170:
|-
|-
|<tt>xerrorbars</tt>, <tt>yerrorbars</tt>
|<tt>xerrorbars</tt>, <tt>yerrorbars</tt>
|Vain x- tai y-suuntaiset virerajat
|Vain x- tai y-suuntaiset virherajat
|-
|-
|<tt>lines</tt>
|<tt>lines</tt>
Rivi 183: 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 Gnuplotin tulee selvittää.
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 210: Rivi 220:


=== 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. 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 sopimaksi katsomallaan tavalla. Gnuplot asettaa pisteparin painokertoimeksi sovituksessa <tt>1/s^2</tt>, missä s on annettu virhe.
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 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.


Lisätietoja sovitustoiminnosta löytyy Gnuplotin ohjeista komennolla
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 ==
== Katso myös ==
*[[Octave]]
*[[Octave]]
*[[QtiPlot]]


==Aiheesta muualla==
==Aiheesta muualla==
Rivi 226: Rivi 244:
*[http://www.jyu.fi/science/laitokset/fysiikka/opiskelu/tyoosasto/gnuplot.pdf Jyväskylän yliopiston fysiikan laitoksen Gnuplot-opas]
*[http://www.jyu.fi/science/laitokset/fysiikka/opiskelu/tyoosasto/gnuplot.pdf Jyväskylän yliopiston fysiikan laitoksen Gnuplot-opas]


[[Luokka:Tiedeohjelmat]]
[[Luokka:Matematiikkaohjelmat]]
10 147

muokkausta

Navigointivalikko