Gnuplot

Jegyzetben az 3. fejezet (36-től 52.-ig oldalig). http://stegerjozsef.web.elte.hu/teaching/szamalap.pdf

Előkészületek

Hozzunk létre a latex mappában egy fig nevű alkönyvtárat!

Lépjünk be a fig könyvtárba!

Indítsuk el a Gnuplot nevű programot:

mkdir ./latex/fig
cd latex/fig
gnuplot

Ábrák készítése

Rajzolni a plot parancs kiadásával lehetséges.

Adjuk ki a következő parancsot:

plot sin(x)
help plot # Bővebben a plot parancsról

Megjegyzés: A Gnuplot rendelkezik előre definiált függvényekkel, mint a sin(x), cos(x), tan(x), erf(x), atan(x), exp(x) stb.

Függvények definiálása

Könnyen megadhatunk függvényeket is. Arra kell csak figyelni, hogy jól meg lehessen különböztetni a függvény változóját a konstansoktól.

Példa

f(t)=sin(t)+a*cos(t)
a=2
plot f(x)

Figyelem! A megadott függvényben a változó t, de mégis f(x)-t ábrázolunk. Miért?

Adatok beolvasása

Fájl letöltése (bash parancs (wget) használata Gnuplotban!):

!wget itl7.elte.hu/~iracz/Oktatas/SzA/sinusadatok.dat

Ábrázoljuk az adatokat:

plot "./sinusadatok.dat"

"plot" parancs rövidítése

Próbáljuk ki:

p "sinusadatok.dat"

Zárjuk be az "plot" ablakot!

Mit csinál a következő utasítás?

replot

Adott oszlop ábrázolás

Nézzünk bele a letöltött fájlba!

!more sinusadatok.dat

Alapértelmezetten az 1-2. oszlopot ábrázolja a Gnuplot.

Ábrázoljuk 2. oszlopot a 3. függvényében:

plot "sinusadatok.dat" using 3:2

Oszlopadatok módosítása

Szorozzuk meg 2-vel a 3. oszlopot, és azt ábrázoljuk az első függvényében:

plot "sinusadatok.dat" using ($1):(2*$3)
            VAGY
plot "sinusadatok.dat" using 1:(2*$3)

Használjuk a rövidítéseket!

p "sinusadatok.dat" u 1:($2*$3*$1)

Több árba felrajzolása

p "sinusadatok.dat" u 2:($2*$3), "" u (0.7*$2):($2), sin(x)

p f(x), cos(x), "sinusadatok.dat" u 1:3, erf(x)

Jelmagyarázat

A plot parancsban a title kapcsolóval tudunk nevet adni az adatoknak. (Nem a képnek címet!)

Példa

plot "sinusadatok.dat" using 1:3 title "adatok"

Rövidítés:

p "sinusadatok.dat" u 1:3 t "adatok"
p sin(x) t "" - üres a jelmagyarázat
p "sinusadatok.dat" u 1:3 notitle - nincs jelmagyarázat

Adott tartomány ábrázolása

A megjeleníteni kívánt adatokat [] közé megadott tartománnyal jelöljük ki plot parancs után. Ilyenkor meg kell adni az összes tengelyre vonatkoztatva, azaz nem lehet csak x vagy y tengelyre megadni Kivétel: set xrange (yrange, zrange) parancs használata, de ez később.

plot [-100:100][-5:5] sin(x) - fix értékű határ
plot [10:*][] "sinusadatok.dat" - automatikusan beállított
plot [10:][] "sinusadatok.dat" - alapértelmezett határ

Vonalstílusok

Lehetőség van különböző vonalstílusok közül választani:

  • Klasszikus vonal: lines (l)
  • Pontok: points (p)
  • Vonal és pontok: linespoints (lp)
  • Pöttyök: dots (d)
  • Tüskék: impulses (i)
  • Hibasávok: errorbars (e)

Példa

plot sin(x) with points
        VAGY
p sin(x) w p

Próbáljuk ki a test parancsot is

test

Egyéb utasítások

  • test parancs - Összefoglaló a lehetőségekről
  • Vonal színe: linecolor (lc) - 0-7 közötti számok
  • Szaggatottság: linetype (lt)
  • Vonalvastagság: linewidth (lw)
  • Pontok stílusa: pointtype (pt)
  • Pontok mérete: pointsize (ps) - dots mindig ~nulla méretű

Példa

plot sin(x) lc 5 lt 0.5 lw 10

"set" parancs

Több mint 150 dolgot lehet vele beállítani:

  • set title "..." - Ábre címe megjelenjen az adott szöveggel
  • set xlabel "..." - x tengely felirata (ylabel, zlabel)
  • set key - Legyen jelmagyarázat (Alapesetben van)
  • set xrange [?:?] - x tengely tartománya (yrange, zrange)
  • unset ... - "set parancs inverze" pl: unset title, unset key

Jelmagyarázat elhelyezkedése:

1. Ábrán belül: 
    1.1. Függőlegesen: top/center/bottom
    1.2. Vízszintesen: left/center/right
2. Ábrán kivűl: tmargin/bmargin/lmargin/rmargin

Megjegyzés: set key inside parancs

Példa

set key lmargin

Ábra mentése

Támogatott formátumok:

PS, JPG (JPEG), PNG, TIFF, GIF ...

PNG kimentése

set terminal png color
set output "sin.png"
replot
set output
set term x11

PostScript (PS) kimentése:

set term po enh eps c
set out "sin.eps"
replot
set out
set term x11

Rövidítések:

term: terminal
po: postscript
enh: enhanced
eps: eps formátum
c: color

Scriptek mentése/betöltése

Lehetőség van a kiadott utasítások mentésére, illetve előre megírt parancsfájlok betöltése is.

  • Mentés: save "akarmi.plt"
  • Betöltés: load "akarmi.plt"
  • Illetve terminálból közvetlenül (külön gnuplot indítása nélkül): gnuplot akarmi.plt
  • Kiléplés a gnuplotból: exit vagy quit vagy <CRTL+d>

Ábrák illesztése latex-be

Ábrák használatához szükséges a graphicx csomag betöltése a latex-be. Majd az ábrákat a figure környezet segítségével tudjuk elhelyezni.

Az eps formétumú ábrát alapértelmezetten csakis a latex parancs támogatja, a pdflatex használatához a pdftoeps csomeg szükséges.

  • Mindenki lépjen ki a gnuplotból (exit)
  • Lépjetek a latex könvytárba (cd ..)
  • Nyissátok meg a latex.tex fájlt. (vim latex.tex)

Töltsük be a csomagot:

\usepackage{graphicx}

"figure" környezet

A fájl végéhez fűzzük hozzá a következő sorokat:

Egy szinusz görbét mutat be \aref{fig:sin}. ábra.
    \begin{figure}[!h]
    \centering
    \includegraphics[angle=-90 trim=0 0 0 0]
    {./fig/sin.eps}
    \caption{Ez egy szinusz görbe a gnuplotból}
    \label{fig:sin}
\end{figure}

Mentsük el a fájlt, majd kétszer fordítsuk le, és végül készítsünk pdf-et!

Kép behelyzésének kapcsolói

  • scale (scale=1)
  • width és height (width=10cm)
  • \linewitdh, \textwidth, \columnwidth
  • keepaspectratio (true/false)
  • trim (trim=l b r t)
  • clip (true/false)
\includegraphics[width=0.5 \linewidth trim= 10 0 0 100 clip] {sin.png}

Mára ennyi