Co je nového ve verzi 3.7
Gnuplot verze 3.7 obsahuje mnoho nových funkcí. Tato část poskytuje částečný seznam nových položek.
Funkce podporované programem Gnuplot 3.7
1.fit f(x) 'soubor' via používá Marquardt-Levenbergovu metodu k přizpůsobení dat. To je jen málo odlišné od funkce gnufit dostupné ve verzi 3.5.
2. Příkaz using byl velmi rozšířen. Viz plot using.
3. set timefmt umožňuje použití dat jako vstup a výstup grafů časových řad. Viz Time/Date data a soubor s demonstrační ukázkou timedat.dem.
4. V některých systémech vícečárové popisy a výběr písma.
5. Miniaturní (nepopsané) rysky na osách. Viz set mxtics.
6. Volba key pro posun klíčové části na stránce (a dokonce mimo graf), přidávání nadpisu a další. Viz set key.
7. Více grafů na jedné logické straně pomocí set multiplot.
8. Vylepšený postscript ovladač s horním/dolním indexem a změnou písma. To bylo jako samostatný ovladač (enhpost), který byl k dispozici jako záplata k verzi 3.5.
9. Druhé osy: použití horních a pravých os nezávisle na spodních a levých, obojí pro kreslení a popisy. Viz plot.
10. Speciální jména datových souborů '-' a "" . Viz plot special-filenames.
11. Přídavný souřadný systém pro popisy a šipky. Viz coordinates.
12. Příkaz set size může kreslit se zadaným poměrem stran.
13. Příkaz set missing nyní zpracovává chybějící data správně.
14. Příkaz call = load s argumenty
15. Příkaz range je více přizpůsobitelný pomocí klíčových slov reverse a writeback.
16. Příkaz set encoding pro vícejazyčné kódování.
17. Nový ovladač x11 se stálými a mnohonásobnými okny.
18. Nové kreslící styly: xerrorbars, histeps, financebars a více. Viz set style.
19. Nové formáty popisů os, včetně "%1%L", který používá mantisu a exponenty k danému základu pro popisy. Viz set format.
20. Nové ovladače, včetně cgm pro vložení do aplikací MS-Office a gif pro umístění grafů na internet.
21. Volby zjemňování a spline-interpolace pro plot. Viz plot smooth.
22. Příkazy set margin a set origin umožňují lepší kontrolu nad tím, kde se graf objeví na stránce.
23. set border nyní kontroluje každý okraj samostatně.
24. Nové příkazy if a reread umožňují cykly v příkazech.
25. Styly a velikosti bodů, typy čar a jejich šířky lze určit v příkazu plot. Typy a šířky čar lze také zadat pro mřížky, okraje, rysky a šipky. Viz plot with. Kromě toho lze tyto typy kombinovat a uložit pro pozdější použití. Viz set linestyle.
26. Text (popisy, označení rysek a času) lze zobrazit vertikálně u těch terminálů, které to podporují.
Dávkové/Interaktivní provozování programu
Gnuplot může být spuštěn buď v dávkovém nebo interaktivním modu a tyto dvě možnosti lze na mnoha systémech používat současně.
Speciální jméno souboru "-" se používá k označení standartního vstupu.
Oba příkazy exit a quit ukončí současný příkazový soubor a otevřou (load) další, dokud se všechno nevykoná.
Příklady: spuštění interaktivní verze- gnuplot
spuštění dávkové verze s použitím příkazových souborů "input1" a "input2"- gnuplot intput1 input2
spuštění interaktivní verze po inicializačním souboru "header" následovaný dalším příkazovým souborem "trailer"- gnuplot header - trailer
Další informace jsou obsaženy v části Představení programu.
Editace na příkazové řádce
Editace na příkazové řádce je podporována verzemi Gnuplotu pro Unix, Atari, VMS, MS-DOS a OS/2. Také průběh programu umožňuje editaci předešlých příkazů a jejich opětovné spuštění. Poté, co je editace ukončena, skok na nový řádek nebo klávesa ENTER vloží celý řádek bez ohledu na to, kde se nachází kurzor.
Následuje seznam editačních příkazů: editace řádky- ^ znanemá CTRL + příslušný znak
^ B posune se o jeden znak zpět
^ F posune se o jeden znak vpřed
^ A posune na začátek řádky
^ E posune se na konec řádky
^ H a Delete vymaže předchozí znak
^ D vymaže znak na pozici kurzoru
^ K vymaže vše od kurzoru do konce řádky
^ L, ^ R znovu napíše stejnou řádku
^ U smaže celou řádku
^ W smaže poslední slovo
Historie vykonaných příkazů:
^ P posune se zpět po historii
^ N posune se vpřed po historii
Pro počítače IBM PC může být žádáno použití nějakého TSR programu, např. DOSEDIT nebo CED pro editaci na příkazové řádce. Původně se předpokládá, že to je tento případ, původně bude gnuplot přeložen bez jakékoli schopnosti editace. Pokud chcete používat řádkovou editaci v Gnuplotu, nastavte parametr READLINE a přidejte soubor readline.obj k odkazovacímu souboru. Následující kurzorové klávesy lze používat na IBM PC a Atari pokud se užívá readline:
šipka vlevo = totéž jako ^B, šipka vpravo = ^F, CTRL šipka vlevo = ^A, CTRL šipka vpravo = ^E, šipka nahoru = ^P, šipka dolů = ^N
Verze pro Atari definuje některé další významy kláves: undo = ^L, Home = ^A, CTRL Home = ^E, Esc = ^U, Help = help plus ENTER, CTRL Help = help.
Prostředí
Gnuplot rozumí mnoha proměnným prostředí. Žádné nejsou požadovány, ale mohou být užitečné.
Pokud je definována proměnná GNUTERM, pak se používá jako název používaného terminálu. Toto má větší váhu než jakýkoli typ terminálu zjištěný Gnuplotem při jeho startu, ale je samo podřízeno startovacím souborem .gnuplot (nebo podobným - viz Po spuštění) a samozřejmě pozdějšími explicitními změnami.
V systémech Unix, AmigaOS, AtariOS, MS-DOS a OS/2 lze definovat GNUHELP, což je cesta k souboru s nápovědou (gnuplot.gih).
Ve VMS by mělo být definováno logické jméno GNUPLOT$HELP jako název knihovny nápovědy pro Gnuplot. Nápověda ke Gnuplotu může být vložena do jakékoli systémové knihovny. Pak bude umožňovat přístup k nápovědě jak z programu, tak zvenčí, jak je libo.
V Unixu se používá proměnná HOME jako název adresáře obsahující soubor .gnuplot, pokud není v aktuálním adresáři nalezen žádný soubor. V AmigaOS, AtariTOS, MS-DOS a OS/2 se používá gnuplot. Ve VMS se používá SYS$LOGIN. Viz Po spuštění.
V Unixu se používá PAGER jako výstupní filtr zpráv nápovědy.
V Unixu, AtariTOS a AmigaOS se pro příkaz shell používá proměnná SHELL. Ve MS-DOS a OS/2 se pro tento příkaz používá proměnná COMSPEC.
V MS-DOS při použití rozhraní BGI nebo Watcom se používá PCTRM k určení maximálního rozlišení vašeho monitoru nastavením na S<max horizontální rozlišení >. Např. pokud maximální rozlišení vašeho monitoru je 800*600 pixelů, použijte
set PCTRM=S800
Pokud se PCTRM nenastaví, používá se standartní VGA.
Lze použít FIT_SCRIPT k určení, který příkaz gnuplotu se má použít, když je fit přerušen - viz fit. FIT_LOG určuje jméno souboru spravovaného příkazem fit.
Souřadnice
Příkazy set arrow, set key a set label vám umožňují nakreslit něco na libovolném místě grafu. Tato pozice je určena pomocí následující skladby:
{<system>} <x>, {<system>} <y> {,{<system>} <z>}
Každý <system> může být buď first (první), second (druhý), graph (graf) nebo screen (obrazovka).
First umístí souřadnice x, y, z do systému definovaného levou a spodní osou, second ji umístí do systému definovamém sekundárními osami (nahoře a vpravo), graph určuje oblast os - 0,0 je spodní levá a 1,1 je horní pravá (pro 3D grafy 0,0,0 je levý dolní okraj oblasti grafu, používejte záporné z abyste se dostali na základnu - viz set ticslevel) a screen určuje plochu obrazovky (celou plochu - ne jen část určenou příkazem set size), kde 0,0 je dole vlevo a 1,1 je nahoře vpravo.
Pokud není souřadný systém pro x zadán, používá se first. Pokud není zadán systém pro y, používá se ten pro x.
Pokud jedna nebo více os je závislých na čase, měl by být vhodný souřadný systém udán jako uvozený časový řetězec závislý na formátu timeft. Viz set xdata a set timeft. Gnuplot také přijme výraz typu celočíselné proměnné, který bude interpretován jako sekundy od 1 ledna 2000.
Výrazy
Platí vše z verze 3.5, navíc si všimněte, že Gnuplot používá jak reálná tak celá čísla jako Fortran a C++. Celá čísla se vkládají jako "1", "-10", atd., reálná jako "1.0", "-10.0", "1e1", 3.5e-1, atd. Největší rozdíl mezi dvěma způsoby dělení je následující: při dělení celých čísel 5/2 = 2 se výsledek ořízne, při dělení reálných čísel ne: 5.0/2.0 = 2.5 . Celá čísla jsou "povýšena" na reálná před výpočtem: 5/2e0 = 2.5. Výsledek dělení záporného čísla kladným se může měnit v závislosti na použitém překladači. Zkuste test jako např. "print -5/2" pro zjištění, zda si váš systém vybere -2 nebo -3 jako výsledek.
Celočíselný výraz "1/0" může být použit k vytvoření "nedefinovaného" indikátoru, což způsobí jeho zanedbání, příklad je uveden u operátoru ternary.
Reálné a imaginární části komplexních výrazů jsou vždy reálná čísla navzdory způsobu jejich vkládání: v {3.2} čísla "3" a "2" jsou reálná, ne celá čísla.
Operátory
Operátory v Gnuplotu jsou stejné jako odpovídající operátory v programovacím jazyku C, kromě všech operátorů akceptujících celočíselné, reálné a komplexní argumenty, pokud není uvedeno jinak. Operátor ** (exponenciela) je podporován stejně jako ve FORTRANU.
unární operátory
Následuje seznam všech unárních operátorů a jejich použití.
|
Symbol |
Příklad |
Vysvětlení |
|
- |
-a |
unární mínus |
|
+ |
+a |
unární plus |
|
~ |
~a |
* doplněk |
| ! | !a | * logická negace |
| ! | a! | * faktoriál |
| $ | $3 | * volat arg/sloupec během using manipulace |
(*) Vysvětlení s hvězdičkou znamená, že operátor vyžaduje celočíselný argument. Priorita operátorů je stejná jako ve Fortranu nebo v C. Stejně jako v těchto jazycích lze použít závorky ke změně pořadí operací. Tedy -2**2 = -4, ale (-2)**2 = 4.
Faktoriál vrací reálné číslo pro umožnění většího rozsahu.
Následuje seznam všech binárních operátorů a jejich použití.
| Symbol | Příklad | Vysvětlení |
| ** | a**b | umocňování |
| * | a*b | násobení |
| / | a/b | dělení |
| % | a%b | * dělení modulo |
| + | a+b | sčítání |
| - | a-b | odčítání |
| == | a==b | rovnost |
| != | a!=b | nerovnost |
| < | a<b | je menší než |
| <= | a<=b | je menší nebo rovno |
| > | a>b | je větší než |
| >= | a>=b | je větší nebo rovno |
| & | a&b | * bitové AND (sčítání) |
| ^ | a^b | * bitové výhradní OR (násobení) |
| | | a|b | * bitové všeobecné OR |
| && | a&&b | * logické AND |
| || | a||b | * logické OR |
(*) Vysvětlení s hvězdičkou znamená, že operátor vyžaduje celočíselný argument. Logické AND (&&) a OR ( || ) jsou zkrácenou verzí z jazyka C. Tedy druhý operand && není vyhodnocen, pokud je hodnota prvního nepravda, druhý || operand není vyhodnocen, pokud hodnota prvního je pravda.
Existuje pouze jeden trojný operátor.
| Symbol | Příklad | Vysvětlení |
| ?: | a?b:c | trojná operace |
Trojný operátor se chová stejně jako v C. První vždy celočíselný argument (a) je vyhodnocen. Pokud je pravda (nenulový), pak je druhý argument (b) vyhodnocen a vrácen, jinak je vyhodnocen a vrácen třetí argument (c).
Trojný operátor je velice užitečný pro konstrukce funkcí po částech a ve vykreslování bodů jen pokud spňují jisté podmínky.
Příklady: Kreslí funkci, která odpovídá sin(x) pro 0 <= x < 1, 1/x pro 1 <= x < 2 a ostatních bodech není definována: f(x) = 0<=x && x<1 ? sin(x) : 1<=x && x<2 ? 1/x : 1/0
Všimněte si že Gnuplot tiše ignoruje nedefinované hodnoty, takže konečná součást funkce (1/0) nevytvoří žádné body ke kreslení. Také si všimněte, že f(x) bude kreslena jako spojitá funkce navzdory nespojitostem při použití stylu line. Pokud ji chcete kreslit nespojitě, vytvořte samostatné funkce pro obě části. Pro tyto účely lze také použít parametrické funkce.
Vykreslení z datového souboru průměrné hodnoty z dat ve sloupcích 2 a 3 místo sloupce 1, ale jen pokud jsou data ve sloupci 4 nezáporná: plot 'soubor' using 1: ($4<0 ? 1/0 : ($2+$3)/2 )
Viz plot data-file using pro vysvětlení syntaxe příkazu using.
Významový slovník
V tomto dokumentu je snaha zachovat soudržnost názvosloví. To nemůže být zcela úspěšné, protože jak se Gnuplot během času vyvíjel, některé příkazy a klíčová slova byly převzaty a to brání úplné dokonalosti. Tato část obsahuje vysvětlení smyslu některých výrazů.
"Strana" nebo "obrazovka" je celá plocha adresovatelná Gnuplotem. Na monitoru je to celá obrazovka a na plotteru je to jeden list papíru. Obrazovka může obsahovat jeden nebo více "kreseb". Kresba (graf) je definována první a druhou souřadnicí, ačkoli se tyto nemusí nutně zobrazovat, stejně jako okraje a jakýkoli text napsaný uvnitř.
Kresba obsahuje jeden "graf". Graf je definován svými souřadnicemi, i když se nemusí zobrazovat. Graf může obsahovat jednu nebo více "čar". Čára je jedna funkce nebo sada dat. "Čára" (Line) je také styl kreslení. Toto slovo lze také užívat ve smyslu "textová čára". Kontext musí pravděpodobně vylučovat jakoukoli mnohoznačnost.
Čáry v grafu mohou mít individuální názvy. Mohou být zapsány do společného seznamu vzorkem kresebného stylu použitého k jejich reprezentaci v "klíči", nekdy též zvaném "legenda".
Slovo "pojmenování (title)" má v Gnuplotu více významů. V tomto dokumentu mu bude vždy předcházet slovo "kresli (plot)" , "čára (line)" nebo "klíč (key)", aby se mezi nimi rozlišovalo.
Graf může mít až čtyři popsané osy. Různé příkazy mají název osy přímo ve jnému, jako např. set xlabel. Další příkazy mají jeden nebo více názvů os volitelné, např. set logscale xy. Názvy čtyř os pro toto použití jsou "x" pro osu podél spodního okraje grafu, "y" pro levý okraj, "x2" pro horní okraj a "y2" pro pravý okraj. "z" se také objevuje v příkazech pro 3D grafy.
Při zpracovávání datových souborů se používá slovo "záznam (record)" k označení jedné řádky textu v souboru, t.j. znaky mezi novým řádkem a znaky pro konec záznamu. "Bod (point)" je část dat vytažených z jednoho záznamu. "Blok dat (datablock)" je řada bodů z následných záznamů oddělených prázdným záznamem. Je-li čára ve smyslu datového souboru, pak je to podmnožina bloku dat.
Syntaxe příkazů
Obecné pravidlo syntaxe a interpunkce v Gnuplotu je, že klíčová slova a volby závisí na pořadí. Volby a doprovázející parametry jsou odděleny mezerami, ale seznamy a souřadnice se oddělují čárkami. Rozsahy se oddělují dvojtečkami a uzavírají do uvozovek [], text a názvy souborů do uvozovek a ostatní věci do kulatých závorek. Složené závorky {} se používají pro některé speciální příkazy.
Čárky se používají k oddělení souřadnic v příkazech set arrow, key, label; je přiložen seznam proměnných (po zadání klíčového slova via za příkazem fit). Dále je tu seznam přerušovaných okrajů nebo cyklických parametrů, které se určují v příkazu set cntrparam, argumenty příkazů set dgrid3d, dummy, isosamples, offsets, origin, samples, size, time a view, seznam rysek nebo cyklických parametrů, které je určují, kompenzace pro nápisy a popisy os, parametrické funkce použitelné k výpočtu souřadnic x, y a z v příkazech plot, replot a splot a úplná sada klíčových slov určujících individuální grafy (funkce nebo soustavy dat) v příkazech plot, replot a splot.
Kulaté závorky se používají k ohraničení soustavy explicitních rysek (opačné k cyklickým parametrům) a k znázornění výpočtů ve filtru using v příkazech fit, plot, replot a splot. Závorky a čárky se také používají jako obvykle ve značení funkcí.
Hranaté závorky určují dané rozsahy v příkazech set, plot nebo splot.
Dvojtečky slouží k oddělení extrémů ve specifikaci rozsahu (příkazy set, plot a splot) a k oddělení vstupů ve filtru using příkazů plot, replot, splot a fit.
Středník se používá k oddělení příkazů na jedné příkazové řádce.
Složené závorky se používají v textu, aby byly provedeny zvlášť v některých terminálech, např. postscript. Také se používají k určení komplexních čísel: {3.2} = 3 + 2i.
Text může být uzavřen v jednoduchých nebo dvojitých uvozovkách. Provedení postupných sekvencí jako \n (nový řádek) a \345 (osmičkový kód znaku) funguje pro dvojité uvozovky, ne pro jednoduché.
Zarovnání je stejné pro každý řádek ve víceřádkovém řetězci. Tedy centrovaný řetězec
"Toto je první řádek textu. \nToto je druhý řádek."
vyprodukuje
Toto je první řádek textu.
Toto je druhý řádek.
ale
'Toto je první řádek textu. \nToto je druhý řádek.'
vyprodukuje
Toto je první řádek textu. \nToto je druhý řádek.
Jména souborů lze vkládat v jednoduchých nebo dvojitých uvozovkách. V tomto návodu pro přehlednost se používají pro jména souborů jednoduché uvozovky a pro ostatní řetězce dvojité uvozovky.
V současnosti byste neměli vkládat \n do {}, pokud používáte rozšířené volby postskriptového terminálu.
Čas a datum
Gnuplot podporuje použití času a data jako vstupních dat. Tato funkce je aktivována příkazy set xdata time, set ydata time atd.
Vnitřně jsou všechny časy a data převedeny do počtu sekund od roku 2000. Příkaz set timeft definuje formát pro všechny vstupy: datové soubory, rozsahy, rysky, pozice popisů - zkráceně, cokoli, co akceptuje hodnotu dat musí toto přijímat v tomto formátu. Jakmile je aktivní jeden vstupní formát pro datum a čas, tak všechny údaje o datu a času musí být ve stejném formátu. Tedy pokud data x a y v souboru jsou čas nebo datum, musí být ve stejném formátu.
Konverze z a do sekund předpokládá univerzální čas (který je stejný jako Greenwich Standard Time). Nelze měnit časové pásmo nebo denní dobu. Pokud všechna vaše data odpovídají stejnému časovému pásmu a jsou buď standartní nebo podle denní doby (dopoledne/odpoledne), tak se tímto nemusíte trápit. Pokud však je pro vaši aplikaci důležitý absolutní světový čas, musíte sami převést všechna data do globálního světového času (GWT, UT).
Příkazy jako show xrange převedou celé číslo podle timeft. Pokud změníte timeft a pak číslo zobrazíte příkazem show, bude zobrazeno v novém timeft. V tom případě pokud vydáte deaktivační příkaz (např. set xdata), bude číslo zobrazeno v jeho numerické podobě.
Příkaz set format definuje formát užitý pro popisy rysek na osách, jestli je nebo není daná osa časová nebo datová.
Pokud se časová/datová informace tiskne do souboru, pak musí být pro příkazy plot/splot použita volba using. Tyto příkazy prostě používají prázdné místo k oddělení sloupců, ale volné místo může být obsazeno časovým/datovým řetězcem. Pokud používáte k oddělení tabelátor, bude možná nutná metoda pokus-omyl k zjištění, jak váš systém s tímto zachází.
Následující příklady demonstrují časové/datové kreslení:
Předpokládejme, že datový soubor obsahuje záznam např. 03/21/95 10:00 6.02e23
Tento soubor může být kreslen pomocí
set xdata time set timeft "%m/%d/%y" set xrange ["03/21/95" :"03/22/95"]
set format x "%m/%d" set timeft "%m/%d/%y %H:%M" plot "data" using 1:3
Pro bližší informace viz popis každého příkazu.