Ero sivun ”Gnuplot” versioiden välillä
Siirry navigaatioon
Siirry hakuun
ei muokkausyhteenvetoa
Ei muokkausyhteenvetoa |
Ei muokkausyhteenvetoa |
||
Rivi 17: | Rivi 17: | ||
Seuraavaksi voidaan kirjoittaa | 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ä === | ||
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ä | 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 | 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 | |||
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 | 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 | |||
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 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. | |||
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 | 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 | 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 | 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 | ||
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 | 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 == |