Ero sivun ”Gnuplot” versioiden välillä

Siirry navigaatioon Siirry hakuun
327 merkkiä lisätty ,  1. huhtikuuta 2020
p
siirto luokkaan
Ei muokkausyhteenvetoa
p (siirto luokkaan)
 
(2 välissä olevaa versiota 2 käyttäjän tekeminä ei näytetä)
Rivi 17: Rivi 17:




Seuraavaksi voidaan kirjoittaa Gnuplotin komentoja ohjelman omaan käyttöliittymään. Tavallinen kuvaaja xy-koordinaatistoon piirretään komennolla <tt>plot funktio</tt>, esimerkiksi:
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 37: 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 47: 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]]:
Rivi 55: 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 112: Rivi 112:


== Ääkköset ==
== Ää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
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
  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
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 129: 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 135: 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 145: Rivi 145:


== 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 159: 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 193: 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 220: 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 sopivaksi 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


Rivi 234: Rivi 234:
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:
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)
  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>).
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 ==
Rivi 244: 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