Rövid használati utasí tás a Gnuplot-hoz

Irta: Henri Gavin

Duke Egyetem

Mérnöki Kar

GNUPLOT KALAUZ

Henri Gavin, hpgavin@duke.edu

1. GNUPLOT 3.7-es verzió

A Gnuplot egy ingyenes, parancsvezérelt, interaktí v függvény- és adatábrázoló program. A Gnuplot elindí tásához gépelje be a unix% prompt után a gnuplot szót. A Gnuplot DOS, Windows, Macintosh OS, OS2, VMS, Linux és sok más rendszer alatt is futtatható.

Ha bármilyen témában segí tségre van szüksége, gépelje be a help szót, majd a téma nevét.

 

2. FÜGGVÉNYEK

Általában véve bármilyen, C, FORTRAN, Pascal vagy Basic által elfogadott matematikai kifejezés használható. Az operátorok (mûveleti jelek) elsõbbségét a C programnyelv elõí rásai határozzák meg.

A támogatott függvények a következõk:

Függvény Eredmény

abs(x) x abszolútértéke, | x |

acos(x) arccos x

asin(x) arcsin x

atan(x) arctg x

cos(x) cos x; x radiánban

cosh(x) ch x; x radiánban

erf(x) x hibafüggvénye

exp(x) x exponenciális függvénye, az alap: e (ex)

inverf(x) x hibafüggvényének inverze

invnorm(x) x normális eloszlásának inverze

log(x) x e alapú logaritmusa (ln x)

log10(x) x 10-es alapú logaritmusa (lg x)

norm(x) Gauss-féle normáliseloszlás-függvény

rand(x) véletlen szám-generátor

sgn(x) 1, ha x > 0; -1, ha x < 0; 0, ha x = 0

sin(x) sin x; x radiánban

sinh(x) sh x; x radiánban

sqrt(x) x négyzetgyöke

tan(x) tg x; x radiánban

tanh(x) th x; x radiánban

 

Támogatottak még a bessel, gamma, ibeta, igamma és lgamma függvények is. Sok függvénynek komplex argumentumai is lehetnek.

Bináris és unáris operátorok is támogatottak.

A Gnuplotban támogatott operátorok ugyanazok, mint a C programnyelvben a megfelelõ operátorok, azzal a különbséggel, hogy a legtöbb operátor argumentuma lehet egész, valós vagy komplex szám is. A ** operátort a Gnuplot a FORTRAN-hoz hasonlóan támogatja. Zárójelek használatával a számí tások sorrendje megváltoztatható. X, y és z az alapértelmezett független változók.

 

3. A plot ÉS splot PARANCSOK

A plot és a splot a Gnuplot-ban a legfontosabb parancsok. Segí tségükkel nagyon sokféle módon ábrázolhatunk függvényeket és adatokat. A plot paranccsal 2-dimenziós függvényeket és adatokat ábrázolhatunk, mí g a splot-tal 3-dimenziós felületeket és adatokat.

Szintaxis:

plot {[értelmezési tartomány]}

{[függvény] | {"[adatfájl]" {adatfájl-módosí tók}}}

{tengelyek [tengelyek] } { [spec. cí m] } { [stí lus]-sal}

{, {definí ciók,} [függvény] ... }

ahol idézõjelek közé téve vagy egy [ függvény] vagy egy adatfájl neve adott. A help plot, help plot with, help plot using vagy help plot smooth parancsok beí rásával részletesebb leí rásokhoz juthat.

3.1 Függvények ábrázolása

Függvények ábrázolásához egyszerûen gépelje be a gnuplot> prompt után: plot [ függvény] >

Próbálja ki például a következõt:

gnuplot> plot sin(x)

gnuplot> splot sin(x)*cos(y)

gnuplot> plot sin(x) title ' Szinuszfüggvény' , tan(x) title ' Tangens'

3.2 Adatok ábrázolása

Egyetlen fájlban lévõ diszkrét adatok úgy jelení thetõk meg, hogy megadjuk az adatfájl nevét (idézõjelek közé téve) a plot vagy splot parancssorban. Az adatfájlok az adatokat számoszlopokban elrendezve kell, hogy tartalmazzák. Az oszlopokat csak szóközzel (tab vagy szóköz) kell elválasztani (vesszõ nélkül). A # karakterrel kezdõdõ sorokat a Gnuplot megjegyzésekként kezeli és figyelmen kí vül hagyja. Ha az adatfájlban üres sor van, akkor az adatpontokat összekötõ vonalnak szakadása lesz.

 

Például ilyen lehet egy adatfájl (force.dat):

# E fájl neve force.dat

# Gerenda és oszlop Erõ Hajlás adatai

# Hajlás Oszlop Erõ Gerenda Erõ

0.000 0 0

0.001 104 51

0.002 202 101

0.003 298 148

0.0031 290 149

0.004 289 201

0.0041 291 209

0.005 310 250

0.010 311 260

0.020 280 240

Az adatok megjelení téséhez gépelje be:

gnuplot> plot "force.dat" using 1:2 title ' Oszlop' , \

"force.dat" using 1:3 title 'Gerenda'

Ne üssön szóköz-karaktert a sor folytatását jelzõ " \ " karakter után. Ha a 3-dimenziós adatok ábrázolásáról többet szeretne megtudni, gépelje be: help splot using

 

4. A GRAFIKON TESTRESZABÁSA

A grafikon sok részlete testreszabható, úgymint a tengelyek beosztása, az x és y tengelyek cí mkéi, az adatpontok stí lusa, az adatpontokat összekötõ vonalak stí lusa, vagy az egész grafikon cí me.

4.1 Testreszabás a plot paranccsal

Az adatoszlopok, a vonalak cí mei és a vonalak/pontok stí lusának testreszabása a plot parancs kiadásával történik. Az adatoszlopok és a vonalcí mek testreszabásáról a 3. részben volt szó.

A grafikonok a következõ stí lusokban jelení thetõk meg:

lines (vonalak); points (pontok); linespoints (vonalak és pontok); impulses (impulzusok); dots (pontok); steps, fsteps, histeps (lépcsõk); errorbars, xerrorbars, yerrorbars, xyerrorbars (hibasávok); boxes, boxerrorbars, boxxyerrorbars (skatulyák); financebars; candlesticks ("gyertyatartók"); vectors (vektorok)

A vonal/pont stí lus megadásához például használja a plot parancsot a következõképpen:

gnuplot> plot "force.dat" using 1:2 title 'Oszlop' with lines, \

"force.dat" u 1:3 t 'Gerenda' w linespoints

Vegyük észre, hogy a 'using', 'title' és 'with' szavak rövidí thetõk u-val, t-vel, illetve w-vel. Továbbá, minden vonal- és pontstí lushoz tartozik egy adott szám.

4.2 Testreszabás a set paranccsal

A tengelybeosztások, tengelycí mkék, a grafikoncí m és még sok más jellemzõ testreszabása a set paranccsal történik. Ime néhány jellemzõ példa a set parancs használatára: (A példákban használt számértékek tetszõlegesek.) A változtatások megtekintéséhez a gnuplot> prompt után bármikor begépelheti a replot parancsot.

Cí m létrehozása: > set title "Erõ Hajlás adatok"

Cí mke az x tengelyre: > set xlabel "Hajlás (méter)"

Cí mke az y tengelyre: > set ylabel "Erõ (kN)"

Az x tengely beosztásának megváltoztatása: > set xrange [ 0.001:0.005]

Az y tengely beosztásának megváltoztatása: > set yrange [ 20:500]

Automatikus beosztás: > set autoscale

A jelmagyarázat mozgatása: > set key 0.01,100

A jelmagyarázat törlése: > set nokey

Cí mke a grafikonra: > set label "terhelhetõségi határ" at 0.003, 260

Az összes cí mke eltávolí tása: > set nolabel

Ábrázolás log-tengelyekkel: > set logscale

Ábrázolás log-tengelyekkel az y tengelyen: > set nologscale; set logscale y

A jelölések megváltoztatása: > set xtics (0.002,0.004,0.006,0.008)

Visszatérés az alapértelmezett jelölésekhez: > set noxtics; set xtics

A set paranccsal testreszabható további jellemzõk:

nyí l, határ, levágás, kontúr, rácsozat, leképezés, poláris görbe, felület, idõ, nézet, stb. Ezek megismerésének legjobb módja, ha elolvassuk az on-line súgó információkat, kipróbáljuk a parancsot és elolvassuk a gnuplot használati utasí tását.

A gnuplot demo-oldalon és a gnuplot bevezetõ oldalon sok olyan példa található, mint például errõl a transzferfüggvényrõl szóló szöveg, amely ezt a grafikont állí tja elõ.

 

5. ADATFÁJLOK ÁBRÁZOLÁSA MÁS MEGJEGYZÉS-KARAKTEREKKEL

Ha adatfájljában a # -tõl különbözõ más megjegyzés-karakter szerepel, adatfájlját ábrázoláskor átfuttathatja a tr szûrõn. Ha például adatfájljában % megjegyzéskarakterek szerepelnek (Matlab-kompatibilitás esetére), a

gnuplot> plot "< tr '% ' '# ' < datafile"

begépelése minden % karaktert # -re fog változtatni az ábrázolást megelõzõen.

 

6. GNUPLOT SZÖVEGEK

Néha egy adott grafikon elkészí téséhez több parancsot kell begépelni, és a parancsok beí rásakor könnyen gépelési hibát ejthetünk. Az ábrázolási eljárást megkönnyí tendõ, több gnuplot parancs összekapcsolható egyetlen szövegfájlban. A következõ fájl például az erõ hajlás adatokat fogja testreszabottan megjelení teni:

# Gnuplot szövegfájl a "force.dat" fájl adatainak ábrázolásához

# E fájl neve force.p

set title "Gerenda és oszlop erõ hajlás adatai"

set xlabel "Hajlás (méter)"

set ylabel "Erõ (kN)"

set key 0.01,100

set label "Terhelhetõségi pont" at 0.003,260

set arrow from 0.0028,250 to 0.003,280

set xr [0.0:0.022]

set yr [0:325]

plot "force.dat" using 1:2 title 'Oszlop' with linespoints, \

"force.dat" using 1:3 title 'Gerenda' with points

Ezután már az egész grafikon létrehozható a következõ paranccsal:

gnuplot> load 'force.p'

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7. GÖRBEILLESZTÉS GNUPLOT-TAL

A force.dat adatai a következõ parancsok segí tségével helyettesí thetõk be egy függvénybe:

f1(x) = a1*tanh(x/b1) # adja meg a függvényt, amibe helyettesí tsen

a1 = 300; b1 = 0.005; # a1 és b1 kezdeti becslése

fit f1(x) 'force.dat' using 1:2 via a1, b1

Végsõ paraméterek Aszimptotikus Standard Eltérés

a1 = 308.687 +/ 10.62 (3.442%)

b1 = 0.00226668 +/ 0.0002619 (11.55%)

és a parancsok:

f2(x) = a2 * tanh(x/b2) # adja meg a függvényt, amibe helyettesí tsen

a2 = 300; b2 = 0.005; # a2 és b2 kezdeti becslése

fit f2(x) 'force.dat' using 1:3 via a2, b2

Végsõ paraméterek Aszimptotikus Standard Eltérés

a2 = 259.891 +/ 12.82 (4.933%)

b2 = 0.00415497 +/ 0.0004297 (10.34%)

Az illesztett görbe és az adatok most a következõ parancsokkal ábrázolhatók:

set key 0.018, 150 title "F(x) = A tanh (x/B)" # cí m a jelmagyarázathoz!

set title "Erõ Hajlás adatok \n és illesztett görbe" # új sor!

set pointsize 1.5 # nagyobb pontok!

set xlabel 'Hajlás, {/Symbol D}_x (m)' # görög betû!

set ylabel 'Erõ, {/Times-Italic F}_A, (kN)' # dõlt betû!

plot "force.dat" using 1:2 title 'Oszlop adatok' with points 3, \

"force.dat" using 1:3 title 'Gerenda adatok' with points 4, \

a1 * tanh( x / b1 ) title 'Oszlop-illesztés: A=309, B=0.00227', \

a2 * tanh( x / b2 ) title 'Gerenda-illesztés: A=260, B=0.00415'

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8. TÁBLÁZATKEZELÉS; PL. AZ ADATOKON VÉGZETT SZÁMITÁSOK

A Gnuplot matematikailag módosí tani tudja az adatokat oszloponként:

A sin (3. oszlop + 1. oszlop) vs. 3 * (2. oszlop) ábrázolásához gépelje be:

plot 'force.dat' using (3*$2):(sin($3+$1))

 

9. TÖBBSZÖRÖS ÁBRÁZOLÁS

A Gnuplot egy keretben egynél több grafikont is tud ábrázolni (mint a subplot a matlab esetében). Pl. próbáljuk ki a következõket:

set multiplot; set size 1,0.5; set origin 0,0.5; plot sin(x);

set origin 0,0; plot cos(x)

set nomultiplot

 

10. KINYOMTATOTT PÉLDÁNY (ÁBRÁZOLÁS PAPIRON)

A következõ fájlok és parancsok segí tségével a grafikonhoz készí thetõ egy Post-Script file. Elõször készí tsen egy általános célú szövegfájlt:

# Fájlnév: saveplot a grafikont Post-Script fájlként menti el

set size 1.0, 0.5

set terminal postscript portrait enhanced "Helvetica" 14

replot

set size 1,1 # visszatérés normál méretre

set terminal x11

replot

Ezután már egyszerûen a következõ parancsok begépelésével elkészí theti és kinyomtathatja példányát:

gnuplot> set out "force.ps"

gnuplot> load 'saveplot'

gnuplot> !lpr Pteerlp1 force.ps

 

11. KÉT ÁBRA NYOMTATÁSA EGY OLDALRA

Ha két ábrát szeretne nyomtatni egy oldalra, a következõ shell szöveget használhatja. Hozza létre a lenti cat2 fájlt, és tegye a fájlt végrehajthatóvá a unix% chmod +x cat2 begépelésével.

# cat2: Shell szöveg két Gnuplot-grafikon egy oldalon való ábrázolásához

echo %! > g.ps

echo gsave > > g.ps

echo 0 400 translate > > g.ps # Gnuplot-grafikonokhoz

cat $1 | sed e "s/showpage//" > > g.ps

echo grestore > > g.ps

echo gsave > > g.ps

echo 0 090 translate > > g.ps # Gnuplot-grafikonokhoz

cat $2 > > g.ps

lpr Phudsonlp1 g.ps

A két Post-Script ábra (plot1.ps és plot2.ps) egy oldalon történõ egyesí téséhez:

cat2 plot1.ps plot2.ps