Gnuplot-jippoja

Deltawikistä
Versio hetkellä 22. tammikuuta 2016 kello 16.00 – tehnyt Wh delta (keskustelu | muokkaukset) (10 revisions)
(ero) ← Vanhempi versio | Nykyinen versio (ero) | Uudempi versio → (ero)
Siirry navigaatioon Siirry hakuun

Tällä sivustolla listataan gnuplotin jippoja, joita voit käyttää, sitten kun olet tarpeeksi luottavainen omiin taitoihisi.


Multiplot[muokkaa]

Tiedosto:Multiplot.png
Esimerkki multiplot-kuvaajasta

Multiplot on menetelmä, jolla saat samaan kuvaan useampia eri plotteja. Esimerkiksi 2x2-kokoisen plotin saa aikaiseksi seuraavasti:

set multiplot layout 2,2
plot x
plot x**2
plot x**3
plot x**4
unset multiplot

Ennen jokaista komentoa voit lisätä tarvittavat asetukset (akselien nimet ym.) erikseen. Multiplot-kuvaajat kannattaa tehdä scriptojen avulla, niin ei tarvitse kirjoittaa koko komentorihmastoa aina uudestaan.

Tiedoston plottauksen jippoja[muokkaa]

Tässä on hieman jippoja tiedostojen käsittelyyn gnuplotissa

Every[muokkaa]

Jos haluat plotata tiedoston joka toisen rivin tai vaikkapa vain rivit 10–23, niin voit käyttää every määrittelyä. Esimerkiksi

plot 'data.txt' every 2

plottaa tiedostosta data.txt vain joka toisen rivin. Määreelle every annetaan yhdestä kuuteen numeroa kaksoispisteillä erotettuna. Siis n:m:o:p:q:r.

  • n - minkä välein rivit, esim. joka toinen, kolmas, kymmenes, jne.
  • m - minkä välein otetaan datablokki, tiedostossa nämä erotellaan toisistaan tyhjällä rivillä
  • o - datan aloituspiste, dataa luetaan riviltä o lähtien
  • p - datablockin aloitus, eli monesko data-alue otetaan
  • q - datan lopetuspiste, viimeinen rivi, joka otetaan mukaan
  • r - datablockin lopetus, mikä on viimeinen datablokki.

Huomaa, että tiedoston ensimmäinen rivi on rivi 0, ei 1

Määrittelylle annettavat arvot voidaan antaa joko kaikki tai jättää joku/joitakin antamatta. Esimerkiksi komento

plot 'data.txt' every ::2::15 using 2:3

plottaa vain tiedoston rivit 2–15 siten, että x-akselilla on tiedoston toinen ja y-akselilla kolmas sarake.


Kommentit datatiedostossa[muokkaa]

Tiedostossa kommentti aloitetaan merkillä #, gnuplot jättää lopun rivistä huomioimatta kun vastaan tulee tämä merkki. Tämä koskee niin scriptatiedostoja, kuin datatiedostoja. Pakottavassa tarpeessa voit myös määritellä omat kommenttisymbolit, komennolla:

set datafile commentschars "merkki"

.

Animaatioita datalistoista TeX Beameriin[muokkaa]

Tämä on kohtalaisen edistynyttä, mutta alla on muutama esimerkkiskripta:

Gnuplot itse käyttää kahta eri tiedostoa, esimerkkinä tiedoston 1.dat 3d-plottaus:

anim3d.gnuplot:

set size square
set xrange[-10:10]
set yrange[-10:10]
set zrange[-10:10]
set terminal postscript enhanced
index=10
load 'loop3d.plt'

loop3d.plt:

set output sprintf("anim%03d.eps",index/10)
splot '1.dat' every ::0::index title sprintf("%iMyr",index) w lines
index=index+10
if (index<=1000) reread

Ajamalla komento: gnuplot anim3d.gnuplot luodaan 100 tiedostoa nimeltä animXXX.eps, kun oletetaan että tiedostossa 1.dat on 1000 riviä ja kirjoitetaan 10 riviä kerrallaan.

Tiedostot eivät välttämättä toimi suoraan, jolloin tarvitsee vielä kikkailla hieman, seuraava scripta muuntaa tiedostot oikeampaan muotoon, huomioi että kaikki kikkailu (rotate) pitää tehdä jälkikäteen.

con.sh:

eps2eps $1 ${1%.eps}-1.eps
epsffit 0 0 363 273 ${1%.eps}-1.eps $1
ps2eps --rotate=+ $1
mv $1.eps $1
rm ${1%.eps}-1.eps

Scriptin voi ajaa kaikille tiedostoille yhtäaikaa komennolla:

ls anim*.eps|xargs -l ./con.sh

Nämä lopulliset tiedostot voi laittaa TeX-dokumentin kansion alle, esim. ~/documents/esitelma/anim

Tex-Beamerissä voidaan käyttää seuraavaa:

\usepackage{animate} (alkuun) 

sekä varsinaisena komentona:

\animategraphics[height=2.5in,loop,poster,final,autoplay,controls]{5}{anim/anim}{001}{100}

Lisätietoa paketin manuaalista. Animaatiot toimivat valmiissa PDF:ssä ainakin acrobat readerin avulla.