Listes de diffusion (anglophones) :
Commentaires : info-gnuplot@dartmouth.edu
Rapports de bug : bug-gnuplot@dartmouth.edu
gnuplot
Commandes
Interfaces utilisateur graphiques [interfaces, gui]
Bugs
Copyright
Introduction
Chercher de l'aide [support]
Nouveautés de la version 3.7 [nouveautes]
Mode Script/Interactif [script, interactif]
Edition de la ligne de commande [edition, historique]
Commentaires
Coordonnées
Environnement
Expressions
Glossaire
Tracer
Démarrer
Substitution
Syntaxe
Les données temporelles [temps, date]
Copyright (C) 1986 - 1993, 1998 Thomas Williams, Colin Kelley
1. de distribuer les modifications correspondantes apportées au code source
officiel, sous la forme d'un fichier patch accompagnant les binaires,
2. d'ajouter un identifiant spécial de version, pour distinguer votre
version, en plus du numéro de version de base,
3. de fournir vos noms et adresses, en tant que contact principal pour le
support de votre version modifiée, et
4. conserver les contacts d'origine afin de permettre à l'utilisateur de
trouver le logiciel de base.
Logiciel d'origine :
Thomas Williams, Colin Kelley.
Compléments Gnuplot 2.0 :
Russell Lang, Dave Kotz, John Campbell.
Compléments Gnuplot 3.0 :
Gershon Elber et bien d'autres.
Traduction française de l'aide : (c) Guilde Education, Avril 2000
G. Allegre, E. Fanchon, C. Boussard, V. Konieczek,
A. Vareille, P. Giroud, R. Mazière
Contact : <Guillaume.Allegre@imag.fr>
gnuplot est un programme de tracé de fonctions et de données en ligne de commande. Il est sensible à la casse (les noms de commandes et fonctions écrits en minuscules sont différents de ceux écrits en majuscules). Tous les noms de commandes peuvent être abrégés, tant que l'abbréviation n'est pas ambigüe. Il est permis d'enchaîner plusieurs commandes sur une ligne, séparées par des points-virgules (;) mais les commandes load et call doivent être les dernières sur leur ligne. Les guillemets peuvent être simples ou doubles, par ex.
load "fichier"
cd 'dir'
bien qu'il y ait quelques subtiles différences (voir syntaxe pour plus de détails).
Les arguments passés à gnuplot en ligne de commande sont considérés comme des noms de fichiers contenant des commandes gnuplot, à l'exception des arguments standard X11, qui sont traités en premier. Chaque fichier est chargé par la commande charge, dans l'ordre spécifié. gnuplot termine dès que le dernier fichier est traité. Si aucun fichier n'est passé, gnuplot s'exécute en mode interactif. Le nom de fichier spécial "-" fait référence à l'entrée standard. Pour plus de détails, voir "help batch/interactive".
Beaucoup de commandes gnuplot ont de multiples options. Ces options doivent apparaître dans l'ordre spécicié, même si certaines peuvent être omises. Par exemple, si la commande complète est "commande a b c", alors "commande a c" marchera probablement, mais pas "commande c a".
Une commande peut s'étendre sur plusieurs lignes avec un backslash (\). Le backslash doit être le _dernier_ caractère de chaque ligne. L'effet est le même que si le backslash et le caractère nouvelle-ligne n'étaient pas là. En clair, aucun espace n'est ajouté, un commentaire n'est pas terminé. En conséquence, commenter une ligne continuée commente toute la commande (voir comment). Mais notez que si une erreur survient dans une commande multilignes, l'analyseur n'est pas capable de la localiser précisément, et ne pointera pas forcément sur la ligne en cause.
Dans ce document, les accolades ({}) entourent les arguments optionnels, et une barre verticale (|) sépare des choix mutuellement exclusifs. Les mots-clefs gnuplot et les sujets de l'aide help sont indiqués par des apostrophes inversées (backquotes) ou en gras (quand c'est disponible). Les crochets anguleux (<>) sont utilisés pour marquer les tokens remplaçables. Dans la plupart des cas, une valeur sera prise par défaut si un token est omis mais dans ces cas, les accolades autour des crochets anguleux sont parfois omises.
Pour l'aide en ligne sur tout sujet, tapez help suivi du nom du sujet, ou juste help ou ? pour obtenir un menu des sujets disponibles.
Le débutant gnuplot devrait commencer par lire plotting (tracé) (en ligne, taper help plotting).
Il existe une liste de diffusion d'utilisateurs gnuplot. Notez, cependant, que le forum (anglophone)
comp.graphics.apps.gnuplot
est identique à la liste de diffusion (ils transportent les mêmes messages). Nous préférons que vous lisiez les messages sur le forum plutôt que de vous inscrire sur la liste de diffusion. Les requêtes administratives doivent être envoyées à
majordomo@dartmouth.edu
Envoyez un message avec simplement le mot "help" dans le corps (pas dans le sujet) pour obtenir plus de détails.
L'adresse pour écrire à la liste de diffusion est :
info-gnuplot@dartmouth.edu
Les rapports de bugs et les contributions au code doivent être envoyées à :
bug-gnuplot@dartmouth.edu
La liste des personnes intéressées par les versions en beta-test :
info-gnuplot-beta@dartmouth.edu
Il y a aussi une page Web, avec les dernières informations, dont les bugs connus :
http://www.cs.dartmouth.edu/gnuplot_info.html
Avant de demander de l'aide, veuillez, s'il vous plaît, vérifier la FAQ (Foire Aux Questions) (en anglais). Si vous ne trouvez pas de copie de la FAQ, vous pouvez en demander une par courriel à l'adresse Majordomo donnée plus haut, la télécharger par ftp à
ftp://ftp.ucc.ie/pub/gnuplot/faq,
ftp://ftp.gnuplot.vt.edu/pub/gnuplot/faq,
ou aller consulter la page Web gnuplot.
Si vous posez une question, veuillez inclure tous les détails : version de gnuplot, machine, et système d'exploitation que vous utilisez. Un _petit_ script montrant le problème peut être utile. Les tracés de fonctions sont préférables aux tracés de données. Si vous envoyez un mail à info-gnuplot, veuillez signaler si vous êtes inscrit à la liste ou pas, de sorte que les utilisateurs du forum sachent s'il faut vous répondre par mail. Il y a un formulaire pour ce type de demande sur le site Web.
2. Commande using fortement étendue. Voir plot using.
3. set timefmt permet l'utilisation de dates en entrée et sortie pour les tracés de séries temporelles. Voir Time/Date data et timedat.dem.
4. Légendes multilignes et sélection de fontes dans certains drivers.
5. Graduations mineures (non étiquetées). Voir set mxtics.
6. Options key pour déplacer la légende (key box) dans la page (et même à l'extérieur du tracé), mettre un titre dessus, un rectangle autour, et plus encore. Voir set key.
7. Tracés multiples sur une seule page logique avec set multiplot.
8. Un driver postscript amélioré, avec exposants, indices et changements de fontes. (c'était un driver séparé (enhpost), disponible comme patch pour la version 3.5).
9. Seconds axes : utilisation des axes haut et droit indépendamment des axes bas et droit, à la fois pour le tracé et les graduations. Voir plot
10. Noms de fichiers de données spéciaux '-' et "". Voir plot special-filenames.
11. Nouveaux systèmes de coordonnées pour les étiquettes et les flèches. Voir coordinates.
12. set size peut essayer de tracer avec un ratio d'aspect (largeur/hauteur) spécifié.
13. set missing traite maintenant correctement les données manquantes.
14. La commande call (appel) : load (charge) avec des arguments.
15. Une commande range (intervalle) plus flexibles avec les mots-clefs reverse et writeback.
16. set encoding pour l'encodage multilingue.
17. Un nouveau driver x11 avec fenêtres persistantes et multiples.
18. De nouveaux styles de tracés : xerrorbars, histeps, financebars et plus encore. Voir set style.
19. De nouveaux formats d'étiquettes de graduations, dont "%l %L" qui utilise la mantisse et l'exposant d'une base donnée pour les étiquettes. Voir set format.
20. De nouveaux drivers, dont cgm pour l'inclusion dans les applications MS-Office et gif pour délivrer des tracés sur le Web.
21. Des options de lissage et d'interpolation par splines pour plot. Voir plot smooth.
22. set margin et set origin fournissent un contrôle largement amélioré sur l'emplacement d'un graphe sur la page.
23. set border contrôle maintenant chaque bord individuellement.
24. Les nouvelles commandes if et reread permettent de programmer des boucles.
25. Les styles et tailles de point, les types et épaisseurs de ligne peuvent être spécifiés dans la commande plot. Les types et épaisseurs de ligne peuvent aussi être précisés pour les grilles, les bords, les graduations et les flèches. Voir plot with. De plus, ces types peuvent être combinés et stockés pour réutilisation. Voir set linestyle.
26. Le texte (étiquettes d'axes, de graduations, et horodatage) peut être écrit verticalement par les terminaux qui le supportent.
gnuplot peut être exécuté en mode script (batch) ou interactif, et les deux peuvent même être mélangés sur la plupart des systèmes.
Tout argument passé en ligne de commande est interprété comme nom de fichier contenant des commandes gnuplot (à l'exception des arguments X11 standard, qui sont interprétés les premiers). Chaque fichier est chargé avec la commande load, dans l'ordre spécifié. gnuplot termine après le traitement du dernier fichier. Quand aucun fichier à charger n'est passé, gnuplot entre en mode interactif. Le nom de fichier spécial "-" est utilisé pour spécifier l'entrée standard.
Les commandes exit et quit terminent toutes deux le fichier de commande courant et passent au suivant, jusqu'à ce que tous aient été traités.
Exemples :
Pour lancer une session interactive :
gnuplot
Pour lancer une session script exécutant 2 fichiers de commande "entree1" et "entree2" :
gnuplot entree1 entree2
Pour lancer une session interactive après un fichier d'initialisation "entete" et suivie par un fichier de commande "final" :
gnuplot entete - final
L'édition de ligne de commande est supportée par les versions Unix, Atari, VMS, MS-DOS et OS/2 de gnuplot. Un mécanisme d'historique permet d'éditer et de ré-exécuter les commandes tapées. Quand la ligne de commande a été éditée, un retour-chariot valide la ligne entière, quelle que soit la position du cuseur. (La fonction readline de gnuplot n'est pas la même que celle utilisée dans GNU Bash et GNU Emacs. Si vous préférez la version GNU, elle peut être sélectionnée à la place de la version gnuplot à la compilation.)
Les commandes d'édition sont les suivantes :
Edition de la ligne:
^B revient d'un caractère en arrière.
^F avance d'un caractère.
^A revient au début de la ligne.
^E avance à la fin de la ligne.
^H efface le caractère précédent.
^D efface le caractère courant.
^K efface de la position courante à la fin de la ligne.
^L,^R réécrit la ligne au cas où elle soit polluée.
^U efface toute la ligne.
^W efface du mot courant à la fin de la ligne.
Historique:
^P remonte d'une commande dans l'historique (plus ancienne)
^N redescend d'une commande dans l'historique (plus récente)
Sur les PCs DOS, l'utilisation d'un programme résident comme DOSEDIT ou CED peut être préférée pour l'édition de ligne. Le makefile par défaut suppose que c'est le cas : par défaut, gnuplot est compilé sans capacité d'édition de ligne. Si vous voulez utiliser l'édition de ligne de gnuplot, positionnez READLINE dans le makefile, et ajoutez readline.obj au fichier de lien. Les touches fléchées suivantes sont utilisées sur les versions PC DOS et Atari si readline est utilisé :
Flèche Gauche - same as ^B.
Flèche Droite - same as ^F.
Ctrl Flèche Gauche - same as ^A.
Ctrl Flèche Droite - same as ^E.
Flèche Haut - same as ^P.
Flèche Bas - same as ^N.
La version Atari de readline définit quelques touches supplémentaires :
Undo - same as ^L.
Home - same as ^A.
Ctrl Home - same as ^E.
Esc - same as ^U.
Help - help plus Entrée.
Ctrl Help - help .
Les commentaires sont supportés comme suit : un # peut apparaître à peu près n'importe où dans une ligne et gnuplot ignore le reste de la ligne. Le # n'a aucun effet entre 2 guillemets, à l'intérieur des nombres (y compris les complexes), à l'intérieur des substitutions de commandes, etc. En résumé, il marche partout où c'est sensé.
Les commandes set arrow, set key, et set label permettent de dessiner quelque chose à une position arbitraire sur le graphe. Cette position est spécifiée par la syntaxe suivante :
{<systeme>} <x>, {<systeme>} <y> {,{<systeme>} <z>}
Chaque <systeme> est un des 4 mots-clefs first, second, graph, screen.
first place la coordonnée x, y, ou z dans le repère défini par les axes de gauche et du bas ; second la place dans le repère défini par les seconds axes (haut et droite) ; graph spécifie la position par rapport à la surface entre les axes : 0,0 en bas à gauche et 1,1 en haut à droite (pour splot, 0,0,0 est en bas à gauche de l'aire de tracé ; utilisez des z négatifs pour descendre vers la base --- voir set ticslevel) ; enfin, screen spécifie l'aire de l'écran (toute la surface, pas seulement la portion sélectionnée par set size), avec 0,0 en bas à gauche et 1,1 en haut à droite.
Si le système de coordonnées n'est pas spécifié pour x, first est utilisé. S'il ne l'est pas pour y, le même que pour x est adopté.
Si l'un (ou plus) des axes est une série temporelle, les coordonnées appropriées doivent être données sous forme d'une chaîne entre guillemets conforme à la chaîne de format de temps timefmt. Voir set xdata et set timefmt. gnuplot acceptera aussi une expression entière, qui sera interprétée comme le nombre de secondes écoulées depuis le 1er janvier 2000.
Plusieurs variables d'environnement du shell sont comprises par gnuplot. Aucune n'est indispensable, mais elles peuvent être utiles.
Si GNUTERM est définie, elles est utilisée comme nom du type de terminal à utiliser. Elle supplante tout type de terminal déterminé par gnuplot au démarrage, mais elle est elle-même supplantée par le fichier de configuration .gnuplot (ou équivalent, voir start-up ou demarrage), et, bien sûr, par tout changement explicite effectué plus tard.
Sous Unix, AmigaOS, AtariTOS, MS-DOS et OS/2, GNUHELP peut être défini pour contenir le chemin du fichier d'aide (gnuplot.gih).
Sous VMS, le nom logique GNUPLOT$HELP devrait définir le nom de la bibliothèque d'aide pour gnuplot. L'aide gnuplot peut être ajoutée dans toute bibliothèque d'aide système, permettant l'accès à l'aide depuis gnuplot ou depuis l'extérieur, indifféremment.
Sous Unix, HOME est utilisé comme nom du répertoire où chercher un fichier .gnuplot si aucun n'existe dans le répertoire courant. Sous AmigaOS, AtariTOS, MS-DOS et OS/2, gnuplot est utilisé. Sous VMS, SYS$LOGIN: est utilisé. Voir help start-up ou help demarrage.
Sous Unix, PAGER est utilisé comme filtre de sortie pour les messages d'aide.
Sous Unix, AtariTOS et AmigaOS, SHELL est utilisé pour la commande shell. Sous MS-DOS et OS/2, COMSPEC est utilisé pour la commande shell.
Sous MS-DOS, si l'interface BGI ou Watcom est utilisée, PCTERM est utilisé pour déclarer la résolution maximale de votre moniteur, en la mettant à S<résolution horiz. maxi>. Par exemple, si la résolution maximale de votre moniteur est 800x600, alors déclarez :
set PCTRM=S800
Si PCTRM n'est pas définie, le VGA standard est utilisé.
FIT_SCRIPT peut être utilisée pour spécifier une commande gnuplot à exécuter quand un ajustement est interrompu --- voir fit. FIT_LOG spécifie le nom du fichier de rapport maintenu par fit.
L'expression entière "1/0" peut etre utilisée pour produire un message "undefined", ce qui fait que le point correspondant est ignoré ; l'opérateur ternary en donne un exemple.
Les parties réelles et imaginaires des expressions complexes sont toujours des réels quelle que soit la façon dont on les a saisies : dans {3,2} le "3" et le "2" sont des réels, pas des entiers.
Fonctions
Opérateurs
Variables et fonctions utilisateur [variables, utilisateur]
Les fonctions de gnuplot sont identiques aux fonctions correspondantes de la bibliothèque mathématique d'Unix (Unix math library), mis à part le fait que toutes les fonctions acceptent des arguments entiers, réels ou complexes, sauf s'il est spécifié explicitement autre chose.
Pour les fonctions qui prennent en arguments ou renvoient des angles, lesquels peuvent etre exprimés en degrés ou en radians (sin(x), cos(x), tan(x), asin(x), acos(x), atan(x), atan2(x) and arg(z)), l'unité peut etre spécifiée à l'aide de set angles, la valeur par défaut étant le radian.
abs
acos
acosh
arg
asin
asinh
atan
atan2
atanh
besj0
besj1
besy0
besy1
ceil
cos
cosh
erf
erfc
exp
floor
gamma
ibeta
inverf
igamma
imag
invnorm
int
lgamma
log
log10
norm
rand
real
sgn
sin
sinh
sqrt
tan
tanh
column
tm_hour
tm_mday
tm_min
tm_mon
tm_sec
tm_wday
tm_yday
tm_year
valid
Pour les arguments complexes, abs(x) est le module de x [i.e., sqrt(real(x)**2 + imag(x)**2) ].
avec set angles.
La fonction acosh renvoie l'arg cosinus hyperpolique exprimé en radians.
La fonction arg renvoie l'argument d'un nombre complexe, en degrés ou en radians, selon ce qui a été spécifié avec set angles.
La fonction asin renvoie l'arc sinus de son argument. asin renvoie l'arc sinus de son argument, en degrés ou en radians, selon ce qui a été spécifié avec set angles.
La fonction asinh renvoie l'arg sinus hyperbolique de son argument en radians.
La fonction atan renvoie l'arc tangente de son argument, en radians ou en degrés, selon ce qui a été spécifié avec set angles.
La fonction atan2 renvoie l'arc tangente du rapport entre les parties réelles de ses arguments. atan2 renvoie une valeur en radians ou degrés selon ce qui a été spécifié avec set angles, dans le quadrant convenable.
La fonction atanh renvoie l'arg tangente hyperbolique de son argument en radians
La fonction cos renvoie le cosinus de son argument. cos prend un argument en radians ou en degrés, selon ce qui a été spécifié avec set angles.
La fonction inverf renvoie l'inverse de la fonction d'erreur de la partie réelle de son argument.
La fonction int renvoie la partie entière de son argument, tronquée vers zéro.
La fonction log renvoie le logarithme naturel (base e) de son argument.
La fonction log10 renvoie le logarithme (base 10) de son argument.
La fonction real renvoie la partie réelle de son argument.
La fonction sin renvoie le sinus de son argument. L'argument de sin doit être en radians ou en degrés, selon ce qui a été spécifié avec set angles.
La fonction sqrt renvoie la racine carrée de son argument.
La fonction tan renvoie la tangente de son argument. L'argument de tan doit être en radians ou en degrés, selon ce qui a été spécifié avec set angles.
Quelques autres fonctions sont disponibles également.
column(x) ne peut être utilisé que dans des expressions using, pour la manipulation de fichiers de données à tracer (plot) ou à ajuster (fit). Voir plot fichier using.
valid(x) ne peut être utilisé que dans des expressions using, pour la manipulation de fichiers de données à tracer (plot) ou à ajuster (fit). Voir plot fichier using.
Les opérateurs de gnuplot sont identiques aux opérateurs correspondants du langage C, à la différence qu'ils acceptent tous des arguments entiers, réels et complexes, sauf mention contraire. L'opérateur ** (exponentiation) est disponible, comme en FORTRAN.
Les parenthèses peuvent être utilisées pour changer l'ordre d'évaluation.
Ce qui suit est une liste des opérateurs unaires avec leur usage :
Symbole Exemple Explication
- -a moins unaire
+ +a plus unaire (pas d'opération)
~ ~a * complément à un
! !a * négation logique
! a! * factorielle
$ $3 * appel arg/colonne pendant une manipulation using
(*) Les explications marquées d'une étoile indiquent que l'opérateur prend un argument entier.
La précédence des opérateurs est la même qu'en Fortran et C. De la même manière que dans ces langages, les parenthèses peuvent être utilisées pour changer l'ordre des opérations. Ainsi -2**2 = -4, mais (-2)**2 = 4.
L'opérateur factorielle retourne un nombre réel pour autoriser un plus grand domaine de valeurs.
Ce qui suit est une liste des opérateurs binaires avec leur usage :
Symbole Exemple Explication
** a**b exponentiation
* a*b multiplication
/ a/b division
% a%b * modulo
+ a+b addition
- a-b soustraction
== a==b égalité
!= a!=b inégalité
< a<b plus petit que
<= a<=b plus petit ou égal
> a>b plus grand que
>= a>=b plus grand ou égal
& a&b * ET bit à bit
^ a^b * OU exclusif bit à bit
| a|b * OU inclusif bit à bit
&& a&&b * ET logique
|| a||b * OU logique
(*) Les explications marquées d'une étoile indiquent que l'opérateur prend des arguments entiers.
Il n'y a qu'un seul opérateur ternaire :
Symbole Exemple Explication
?: a?b:c opération ternaire
f(x) = 0<=x && x<1 ? sin(x) : 1<=x && x<2 ? 1/x : 1/0
plot f(x)
Noter que gnuplot ignore silencieusement les valeurs non définies, et qu'ainsi la branche finale de la fonction (1/0) ne produira aucun point traçable. Noter aussi que f(x) sera tracée comme une fonction continue en dépit de la discontinuité si un style line est utilisé. Pour tracer de manière discontinue, créer des fonctions séparées pour les deux morceaux. (Les fonctions paramétriques sont aussi utiles dans cette situation.)
2. Ayant des données dans un fichier, tracer la moyenne des données des colonnes 2 et 3 en fonction de la donnée en colonne 1, mais seulement si la donnée en colonne 4 est positive ou nulle :
plot 'fichier' using 1:( $4<0 ? 1/0 : ($2+$3)/2 )
Voir plot fichier using pour une explication de la syntaxe using.
De nouvelles variables définies par l'utilisateur, ainsi que de nouvelles fonctions de une a cinq variables, peuvent être déclarées et utilisées partout, y compris dans la commande plot elle-même.
Syntaxe de définition des fonctions :
<nom-fonc>( <var1> {,<var2>} ... {,<var5>} ) = <expression>
où <expression> est définie en utilisant les variables <var1> à <var5>.
Syntaxe de définition des variables :
<nom-variable> = <expression-constante>
Exemples :
w = 2
q = floor(tan(pi/2 - 0.1))
f(x) = sin(w*x)
sinc(x) = sin(pi*x)/(pi*x)
delta(t) = (t == 0)
ramp(t) = (t > 0) ? t : 0
min(a,b) = (a < b) ? a : b
comb(n,k) = n!/(k!*(n-k)!)
len3d(x,y,z) = sqrt(x*x+y*y+z*z)
plot f(x) = sin(x*a), a = 0.2, f(x), a = 0.4, f(x)
Noter que la variable pi est prédéfinie. Mais ce nom n'a rien de magique ;
vous pouvez le redéfinir pour représenter ce que vous voulez.
Les noms valides sont les mêmes que dans la plupart des langages de programmation : ils doivent commencer par une lettre, mais les caractères suivants peuvent être des lettres, des chiffres, "$", ou "_". Noter cependant que le mécanisme fit utilise plusieurs variables dont les noms commencent par "FIT_". Il est plus sûr d'éviter d'utiliser de tels noms. Néanmoins "FIT_LIMIT" est un de ceux que vous pouvez vouloir redéfinir. Voir la documentation sur fit pour les détails.
Voir show functions, show variables, et fit.
Tout au long de ce document un effort a été fait pour maintenir la cohérence de la nomenclature. Cet objectif ne peut pas être totalement atteint parce que gnuplot a evolué au cours du temps, certaines commandes et noms de mots-clés ont été adoptés qui empêchent cette perfection. Cette section contient des explications sur la façon dont ces termes sont utilisés.
Une "page" (page) ou un "écran" (screen) est la surface entière accessible à gnuplot. Sur un moniteur, c'est la surface de l'écran ; sur un traceur, c'est une feuille de papier.
Un écran peut contenir un ou plusieurs "tracés" (plot). Un tracé est défini par une abscisse et une ordonnée, bien qu'ils n'apparaissent pas nécessairement, ainsi que par les marges et le texte.
Un tracé contient un "graphe" (graph). Un graphe est défini par une abscisse et une ordonnée, bien qu'ils n'apparaissent pas nécessairement.
Un graphe peut contenir une ou plusieurs "courbes" (lines). Une courbe correspond à une fonction unique ou un jeu de données unique.
Les courbes d'un graphe peuvent avoir des noms individuels. Ceux-ci peuvent être listés acompagnés d'un échantillon du style de tracé utilisé pour les représenter dans la "légende" (key, legend).
Le mot "titre" apparaît dans gnuplot avec plusieurs sens. Dans ce document, il sera toujours accompagné des compléments "de tracé", "de courbe", ou "de légende" afin d'en préciser le sens.
Un graphe peut avoir jusqu'à quatre axes étiquetés. Diverses commandes ont le nom d'un axe inclu dans leur nom, comme set xlabel. D'autres commandes ont un ou plusieurs nom d'axe en option, comme set logscale xy. Les noms des quatre axes pour cet usage sont "x" pour l'axe parallèle au bord inférieur du tracé, "y" pour le bord gauche, "x2" pour le bord du haut, et "y2" pour le bord droit. "z" existe aussi dans les commandes de tracé 3D.
Dans la partie sur les fichiers de données, le terme "enregistrement" sera exhumé et utilisé pour dénoter une ligne de texte dans le fichier, c'est-à-dire tous les caractères entre deux saut-de-ligne ou fin d'enregistrement. Un "point" est une donnée extraite d'un enregistrement unique. Un "bloc de données" est un ensemble de points provenant d'enregistrements consécutifs, délimités par des enregistrements vides. Une ligne,dans le contexte d'un fichier de données, est un sous-ensemble d'un bloc de données.
Il y a trois commandes gnuplot qui créent effectivement un tracé : plot, splot et replot. plot génère des tracés 2D, splot génère des tracés 3D (en fait des projections en 2D évidemment), et replot ajoute ses arguments aux précédents plot ou splot et exécute la commande modifiée.
La plupart des informations générales sur les tracés peuvent être trouvées dans la section sur plot ; les informations spécifiques à la 3D peuvent être trouvées dans la section sur splot.
plot opère soit en coordonnées rectangulaires, soit en coordonnées polaires (voir set polar pour les détails sur ces dernières). splot opère seulement en coordonnées rectangulaires, mais la commande set mapping permet de traiter quelques systèmes de coordonnées supplémentaires. De plus, l'option using permet à plot et splot de traiter presque tous les systèmes de coordonnées que vous prendrez la peine de définir.
splot peut tracer des surfaces et des contours en plus des points et/ou des lignes. En plus de splot, voir set isosamples pour des informations sur la définition des grilles de fonctions 3D ; splot fichier pour des informations sur la structure de fichier requise pour des valeurs de données 3D ; et set contour et set cntrparam pour des informations sur les contours.
Quand gnuplot est lancé, il cherche un fichier d'initialisation à charger. Ce fichier s'appelle .gnuplot sur les systèmes Unix et AmigaOS, et GNUPLOT.INI sur les autres systèmes. Si ce fichier n'est pas trouvé dans le répertoire courant, le programme va le chercher dans le répertoire utilisateur (home directory) (sous AmigaOS, Atari(single)TOS, MS-DOS et OS/2, la variable d'environnement gnuplot doit contenir le nom de ce répertoire). Note : si NOCWDRC est défini pendant l'installation, gnuplot ne lira pas le répertoire courant.
Si le fichier d'initialisation est trouvé, gnuplot exécute les commandes qu'il contient. Celles-ci peuvent être n'importe quelles commandes gnuplot légales, mais typiquement elles se limitent à configurer le terminal et à définir des fonctions ou des variables fréquemment utilisées.
Les substitutions sur la ligne de commande sont spécifiées par une commande système délimitée par des apostrophes inverses. Cette commande est lancée en tant que sous-processus et la sortie qu'elle génère remplace le nom de la commande (et les apostrophes inverses) sur la ligne de commande. Certaines implémentations fournissent aussi les tubes (pipes). Voir plot fichier special.
Les newlines (sauts de ligne) dans la sortie produite par la commande fille sont remplacés par des blancs.
Les substitutions sur la ligne de commande peuvent être utilisées n'importe où dans la ligne de commande gnuplot.
Exemple :
Ceci lance le programme leastsq et remplace sur la ligne de commande leastsq (y compris les apostrophes inverses) par sa sortie :
f(x) = leastsq
ou, sous VMS
f(x) = run leastsq
Les règles générales de syntaxe et de ponctuation dans gnuplot sont telles que les mots-clés et les options dépendent de leur ordre sur la ligne de commande. Les options et tous les paramètres d'accompagnement sont séparés par des espaces, alors que les éléments de listes et les coordonnées sont séparées par des virgules. Les bornes des intervalles sont séparées par des deux-points et mises entre crochets [a:b], les chaînes de caractère texte et les noms de fichier sont mis entre apostrophes '' ou entre guillemets anglais "", et diverses autres choses diverses sont placées entre parenthèses. Les accolades {} sont utilisées dans quelques cas spéciaux.
Les virgules sont utilisées pour séparer les coordonnées dans les commandes set arrow, set key, et set label ; la liste des variables qui sont ajustées (la liste après le mot-clé via dans la commande fit) ; les listes de contours discrets ou les paramètres de boucle qui les spécifient dans la commande set cntrparam ; les arguments des commandes set suivantes : dgrid3d, dummy, isosamples, offsets, origin, samples, size, time et view ; les listes de traits de graduation ou les paramètres de boucle qui les spécifient ; les retraits pour les étiquettes de titre et d'axe; les fonctions paramétriques à utiliser pour calculer les coordonnées x, y et z dans les commandes plot, replot et splot ; et les ensembles complets de mots-clés spécifiant des tracés individuels (jeu de données ou fonctions) dans les commandes plot, replot and splot.
Les parenthèses sont utilisées pour délimiter des suites de traits de graduation explicites (par opposition aux paramètres de boucles) et pour indiquer des calculs dans le filtre using des commandes fit, plot, replot et splot.
(Les parenthèses et les virgules sont aussi utilisées comme d'habitude dans les notations de fonctions.)
Les crochets sont utilisés pour délimiter les intervalles et domaines de définition, qu'ils soient donnés pour les commandes set, plot ou splot.
Les deux-points sont utilisés pour séparer les bornes dans les définitions d'intervalle par range (qu'ils soient donnés sur les commandes set, plot ou splot) et pour séparer les entrées dans le filtre using des commandes plot, replot, splot et fit.
Les points-virgules sont utilisés pour séparer plusieurs commandes données sur une ligne de commande unique.
Les accolades sont utilisées dans le texte pour être traitées spécialement par certains terminaux, comme postscript. Elles sont aussi utilisées pour noter les nombres complexes : {3,2} = 3 + 2i.
Du texte peut être délimité par des apostrophes simples ou des guillemets. Le traitement des séquences introduites par une contre-oblique (antislash) comme \n (newline) et \345 (code de caractère octal) est effectué pour les chaînes entre guillemets, mais pas pour les chaînes entre apostrophes.
La justification est la même pour chaque ligne d'une chaîne multi-ligne. Ainsi la chaîne centrée
"Ceci est la première ligne de texte.\nCeci est la seconde ligne."
produira
Ceci est la première ligne de texte.
Ceci est la seconde ligne.
mais
'Ceci est la première ligne de texte.\nCeci est la seconde ligne.'
produira
Ceci est la première ligne de texte.\nCeci est la seconde ligne.
Les noms de fichier peuvent être entrés soit entre apostrophes soit entre guillemets. Dans ce manuel les exemples de commandes comportent généralement les fichiers entre apostrophes et les autres éléments de type chaîne entre guillemets pour plus de clarté.
Actuellement il ne faut pas inclure \n entre {} lorsque vous utilisez l'option étendue du terminal postscript.
Les pilotes EEPIC, Imagen, Uniplex, LaTeX et TPIC permettent de spécifier un retour à la ligne par \\ dans une chaîne entre apostrophes ou \\\\ dans une chaîne entre guillemets.
Les apostrophes inverses sont utilisées pour délimiter les commandes système pour substitution (voir help substitution).
gnuplot permet l'utilisation d'informations de temps et/ou date comme données d'entrée (données temporelles). Cette caractéristique est activée par les commandes set xdata time, set ydata time, etc.
A l'intérieur de gnuplot tous les temps et dates sont convertis en nombre de secondes par rapport à l'année 2000. La commande set timefmt définit le format pour toutes les entrées : fichiers de données, domaines, traits de graduation, étiquettes de position - bref, tout ce qui accepte une valeur doit la recevoir dans ce format. Puisqu'un seul format de donnée peut être en vigueur à un moment donné, toutes les quantités temps/date entrées au même moment doivent être présentées dans le même format. Ainsi si les données x et y sont simultanément temps/date, elles doivent être dans le même format.
Les conversions mettant en jeu des secondes sont basées sur le Temps Universel (qui est le même que le Temps Standard de Greenwich). Rien n'est prévu pour changer de fuseau horaire ou pour les changements d'horaires saisonniers. Si toutes vos données se réfèrent au même fuseau horaire (et sont toutes soit décalées soit standard) vous n'avez pas besoin de vous préoccuper de ces choses. Mais si le temps absolu est crucial pour votre application, vous devrez convertir en TU vous-même.
Les commandes comme show xrange ré-interprètent l'entier selon timefmt. Si vous changez timefmt, et ensuite refaites show sur la quantité, elle sera affichée dans le nouveau timefmt. Si vous désactivez les données temporelles (set xdata), la quantité sera montrée sous sa forme numérique.
La commande set format definit le format qui sera utilisé pour les étiquettes de traits de graduation, que l'axe spécifié soit temporel ou non.
Si l'information temporelle doit être tracée à partir d'un fichier, l'option using _doit_ être utilisée avec les commandes plot ou splot. Ces commandes utilisent simplement des espaces blancs pour séparer les colonnes, mais un espace blanc peut être inclus dans une chaîne temps/date. Si vous utilisez des tabulations comme séparateur, des essais-erreurs peuvent être nécessaires pour découvrir comment votre système les traite.
L'exemple suivant montre un tracé temporel.
Supposez que le fichier "données" contienne des enregistrements comme :
03/21/95 10:00 6.02e23
Ce fichier peut être tracé par
set xdata time
set timefmt "%m/%d/%y"
set xrange ["03/21/95":"03/22/95"]
set format x "%m/%d"
set timefmt "%m/%d/%y %H:%M"
plot "data" using 1:3
ce qui va produire des étiquettes xtic telles que "03/21".
Voir les descriptions de chaque commande pour plus de détails.
Cette section liste les commandes reconnues par gnuplot, dans l'ordre alphabétique. Les versions imprimées de ce document contiennent toutes les commandes ; les versions en ligne peuvent être incomplètes. En fait, sur certains systèmes, il peut n'y avoir aucune commande listée dans cette section.
Veuillez noter que dans la plupart des cas, des abréviations univoques des noms de commandes et de leurs options sont acceptées, par exemple "p f(x) w l" au lieu de "plot f(x) with lines".
Dans la description de la syntaxe, les accolades ({}) entourent les arguments optionnels et la barre verticale (|) séparent les options mutuellement exclusives.
cd
call
clear
exit
fit (ajustement) [fit]
help [help, aide]
if
load
pause
plot
print
pwd
quit
replot
reread
reset
save
set-show [set, show]
shell
splot
test
update
La commande cd change le répertoire de travail.
cd '<répertoire>'
Le nom du répertoire doit être entre guillemets.
cd 'sousrep'
cd ".."
cd "c:\newdata"
cd 'c:\newdata'
La commande call est similaire à la commande load, à l'exception que vous pouvez passer jusqu'à 10 paramètres supplémentaires à la commande, qui seront substitués dans les lignes provenant du fichier : chaque ligne lue est scannée à la recherche de séquences $n (dollar, suivi d'un chiffre 0 à 9). Une telle séquence est remplacée par le paramètre correspondant de la commande call. Si le paramètre était spécifié comme une chaîne dans la commande call, il sera substitué sans les guillemets qui le délimitent. $ suivi de n'importe quel autre caractère qu'un chiffre sera remplacé par ce caractère. Par exemple utilisez $$ pour obtenir un simple $. Fournir plus de dix paramètres sur la ligne de commande call cause une erreur. Un paramètre non fourni est remplacé par rien. Les fichiers de commande appelés par call peuvent eux-mêmes contenir des commandes call ou load.
La commande call _doit_ être la dernière de la ligne sur une ligne contenant plusieurs commandes.
Syntaxe :
call "<fichier-entree>" <param-0> <param-1> ... <param-9>
Le nom du fichier d'entrée doit être entre guillemets, et il est recommandé que les paramètres le soient également ; les versions futures de gnuplot pourront traiter différemment les arguments entre et sans guillemets.
Exemple :
Si le fichier 'calltest.gp' contient la ligne :
print "p0=$0 p1=$1 p2=$2 p3=$3 p4=$4 p5=$5 p6=$6 p7=x$7x"
l'entrée de la commande :
call 'calltest.gp' "abcd" 1.2 + "'quoted'" -- "$2"
affichera :
p0=abcd p1=1.2 p2=+ p3='quoted' p4=- p5=- p6=$2 p7=xx
NOTE : il y a une incohérence de syntaxe avec l'opérateur using pour les fichiers de données. Utilisez $$n ou column(n) pour accéder à la n-ième colonne d'un tracé de fichier de données appelé par call.
La commande clear efface l'écran ou périphérique de sortie courant (spécifié par set output). Sur les périphériques d'impression graphique, elle génère en général un saut de page. Utilisez set terminal pour fixer le type de périphérique.
Pour certains terminaux, clear efface seulement la portion de surface de tracé définie par set size. Dans ce cas, elle peut donc être utilisée en conjonction avec set multiplot pour créer un encart.
Exemple:
set multiplot
plot sin(x)
set origin 0.5,0.5
set size 0.4,0.4
clear
plot cos(x)
set nomultiplot
Veuillez vous référer à set multiplot, set size, et set origin pour une description détaillée de ces commandes.
Les commandes exit et quit et le caractère EOF (fin de fichier) quittent le fichier de commandes gnuplot courant, et chargent (load) le suivant. Voir "help batch/interactive" pour plus de détails.
Chacune de ces commandes efface le périphérique de sortie (comme la commande clear) avant de quitter.
fit {[interv_x] {[interv_y]}} <fonction> '<fichier_données>'
{modificateurs_fichier}
via '<fichier_parametres>' | <var1>{,<var2>,...}
[{variable_muette=}{<min>}{:<max>}],
analogue à plot ; voir plot ranges.
<fonction> est une expression gnuplot valide, mais on utilise d'habitude une fonction préalablement définie par l'utilisateur de la forme f(x) ou f(x,y).
<fichier_données> est traité comme dans la commande plot. Tous les modificateurs de plot pour un fichier de données (using, every...) sont utilisables avec fit, sauf smooth. Voir plot datafile.
Les formats de donnée par défaut pour ajuster une fonction d'une seule variable, y=f(x), sont {x:}y ou x:y:s. Ces formats peuvent être changés grâce au modificateur using. La troisième colonne (constituée de nombres ou d'expressions), si elle est présente, est interprétée comme l'écart type de la valeur y correspondante, et est utilisée pour calculer un poids pour la donnée : 1/s**2. Sinon, toutes les données sont pondérées à 1.
Pour ajuster une fonction de deux variables z=f(x,y), le format obligatoire est using, avec 4 colonnes, x:y:z:s. Le format doit être complet ; aucune donnée par défaut n'est calculée en cas de valeur manquante. Les poids des données sont calculés selon 's' comme ci-dessus. Si les estimations d'erreurs ne sont pas disponibles, une valeur constante peut être spécifiée sous la forme d'une expression constante, par exemple using 1:2:3:1 (voir plot datafile using).
Plusieurs ensembles de données peuvent être ajustés simultanément pour des fonctions d'une variable, en transformant y en 'pseudo-variable' contenant, par exemple, le numéro de ligne de la donnée, et en calculant l'ajustement comme pour deux variables indépendantes. Voir fit multibranch.
Le qualificateur via spécifie quels paramètres doivent être ajustés, soit directement, soit en référençant un fichier de paramètres.
Exemples :
f(x) = a*x**2 + b*x + c
g(x,y) = a*x**2 + b*y**2 + c*x*y
FIT_LIMIT = 1e-6
fit f(x) 'measured.dat' via 'start.par'
fit f(x) 'measured.dat' using 3:($7-5) via 'start.par'
fit f(x) './data/trash.dat' using 1:2:3 via a, b, c
fit g(x,y) 'surface.dat' using 1:2:3:(1) via a, b, c
A chaque étape de l'itération, des informations détaillées sur l'état courant de l'ajustement sont affichées. Les mêmes informations pour les états initial et final sont écrites dans un fichier de rapport, "fit.log". Elles sont toujours ajoutées à la fin du fichier, afin de ne pas perdre les rapports des ajustements précédents. En cas de besoin, ce fichier peut être renommé ou effacé.
L'ajustement peut être interrompu par Ctrl-C. A la fin de l'itération en cours vous avez le choix de (1) arrêter l'ajustement et accepter les valeurs des paramètres obtenues, (2) continuer l'ajustement, (3) exécuter une commande gnuplot comme spécifié par la variable d'environnement FIT_SCRIPT. Le contenu par défaut de FIT_SCRIPT est replot, donc si vous avez déjà tracé à la fois les données et la fonction à ajuster sur un même graphe, vous pouvez tracer l'état courant de l'ajustement.
Une fois que l'ajustement est terminé, la commande update peut être utilisée pour stocker les valeurs finales dans un fichier pour un usage ultérieur. Voir update pour plus de détails.
Paramètres ajustables [parametres]
guide du débutant [guide_debutant, guide]
estimation d'erreurs [erreurs]
contrôle d'ajustement [controle]
multi-branche
valeurs initiales [valeurs_initiales, initial]
trucs
nomvar = valeur
Les commentaires, marqués par un '#', et les lignes blanches sont permis. La forme spéciale
nomvar = valeur # FIXED
signifie que la variable est traitée comme un 'paramètre fixé', initialisé par le fichier de paramètres, mais pas ajusté par fit. Pour une plus grande clarté, il peut être utile de désigner des variables comme des paramètres fixes, de sorte que leurs valeurs soient inscrites dans le rapport de fit. Le mot-clef # FIXED doit apparaître exactement sous cette forme.
fit est utilisé pour trouver un ensemble de paramètres qui ajustent au mieux fonction définie par l'utilisateur sur des données. L'ajustement est estimé sur la base de la somme des carrés des différences (ou résidus), SCR, entre les données et les valeurs de la fonction, évaluée aux mêmes endroits. Cette quantité est souvent appelée "khi deux" (la lettre grecque khi, à la puissance 2). L'algorithme essaie de minimiser cette somme, ou plus précisément cette somme pondérée, SCRP, puisque les résidus sont pondérés par les erreurs sur les données d'entrée (ou par 1.0) avant d'être élevés au carré. C'est pourquoi il est appelé "ajustement aux moindres carrés". Voir fit estimation_erreur pour plus de détails.
Examinons un exemple pour comprendre ce que veut dire "non-linéaire" ici, mais d'abord il vaut mieux définir quelques termes. Ici il est commode d'utiliser z comme variable fonction d'une ou deux variables indépendantes, z=f(x) ou z=f(x,y). Un paramètre est une variable définie par l'utilisateur que fit va ajuster, ie une quantité inconnue dans la déclaration de la fonction. La linéarité (ou non-linéarité) se rapporte à la relation entre la variable liée, z, et les paramètres que fit ajuste, pas à la relation liant z à x et/ou y.
Dans les moindres carrés linéaires, la fonction définie par l'utilisateur est la somme de fonctions simples, ne dépendant d'aucun paramètre, chacune multipliée par un paramètre. Les moindres carrés non linéaires résolvent des fonctions plus compliquées, dans lesquelles les paramètres peuvent intervenir de nombreuses manières. Un exemple qui illustre la différence entre moindres carrés linéaires et non-linéaires est les séries de Fourier. Un terme peut être écrit sous la forme :
z=a*sin(c*x) + b*cos(c*x).
Si a et b sont les paramètres et c est constante, alors estimer les valeurs des paramètres est un problème aux moindres carrés linéaire. Par contre, si c est un paramètre, le problème est non-linéaire.
Dans le cas linéaire, les valeurs des paramètres peuvent être déterminées par un calcul direct d'algèbre linéaire. Cependant, c'est un cas particulier qui peut également être résolu par la méthode générale (non-linéaire) itérative utilisée par gnuplot. fit tente de trouver le minimum en faisant une recherche : à chaque itération, il calcule SCRP (somme des carrés des résidus pondérés) avec un nouvel ensemble de paramètres. L'algorithme de Levenberg-Marquardt sélectionne les valeurs des paramètres pour l'itération suivante. Le processus continue jusqu'à ce qu'un critère prédéfini soit rempli : soit (1) l'ajustement a "convergé" (le changement relatif de SCRP est inférieur à FIT_LIMIT), soit (2) on a atteint une valeur limite pour le nombre d'itérations, FIT_MAXITER (voir variables_controle). L'ajustement peut aussi être interrompu puis stoppé au clavier (voir fit).
Souvent, la fonction à estimer est basée sur un modèle (ou une théorie) qui tente de décrire ou de prédire le comportement des données. fit peut alors être utilisé pour trouver les valeurs des paramètres libres du modèle, pour déterminer à quel point les données obéissent au modèle, et pour estimer un intervalle d'erreur pour chaque paramètre. Voir fit estimation_erreurs
D'un autre côté, en interpolation de courbes, les fonctions sont sélectionnées indépendamment d'un modèle, sur la base de l'expérience, dans le but de décrire l'allure des données avec un nombre minimal de paramètres*fonctions, mais une résolution suffisante. La solution de fit fournit alors une représentation analytique de la courbe.
Mais si ce qu'il vous faut vraiment, c'est une courbe lisse reliant vos données, l'option smooth de plot est peut-être plus appropriée que fit.
Dans fit, le terme "erreur" est utilisé dans deux contextes différents : l'estimation d'erreur sur les données, et l'estimation d'erreur sur les paramètres.
L'estimation d'erreurs sur les données est utilisée pour calculer le poids relatif de chaque donnée, intervenant dans le calcul de SCRP (la somme des carrés des résidus pondérés). Elle peut affecter l'estimation des paramètres, puisque elle détermine l'influence sur la valeur finale de l'écart de chaque point à la fonction ajustée. Certaines informations du rapport fourni par fit, dont les estimations d'erreur sur les paramètres, sont plus pertinentes si des estimations précises des erreurs sur les données sont fournies.
L'"aperçu statistique" décrit quelques sorties de fit et donne quelques prérequis pour les "modalités pratiques".
apercu statistique [apercu_statistique, apercu]
guide pratique [pratique, guide_pratique]
En conclusion, fit indique "stdfit", l'écart-type de l'ajustement (en anglais, "standard deviation"), qui est la rms des résidus, et la variance des résidus, également appelée "khi-deux réduit", quand les points de données sont pondérés. Le nombre de degrés de liberté est utilisé dans ces estimations, car les paramètres utilisés dans le calcul des résidus proviennent des mêmes données.
Pour estimer les niveaus de confiance pour les paramètres, on peut utiliser le khi-deux minimum obtenu par l'ajustement, et effectuer des calculs de khi-deux pour déterminer la valeur du khi-deux corresponsant au niveau de confiance souhaité, mais cela demande considérablement plus de calcul de déterminer les combinaisons de paramètres qui produisent ces valeurs.
Plutôt que déterminer les intervalles de confiance, fit renvoie les estimations d'erreur sur les paramètres, qui sont directement obtenus à partir de la matrice de variance-covariance après la dernière itération. Par convention, ces estimations sont appelées "erreurs standard (asymptotiques)", puisqu'elles sont calculées de la même façon que les erreurs standard (écart type de chaque paramètre) d'un problème de moindres carrés linéaire (MCL), même si les conditions statistiques ne sont pas exactement remplies pour le problème MCNL. Les erreurs standard asymptotiques sont généralement trop optimistes et ne devraient pas être utilisées pour déterminer des intervalles de confiance, mais elles sont utiles pour des estimations qualitatives.
La solution finale produit aussi une matrice de corrélation, qui donne une indication sur la corrélation des paramètres dans la région de la solution ; si un des paramètres change de sorte que le khi-deux augmente, est-ce qu'un autre paramètre peut compenser ? Les éléments de la diagonale principale, coefficients d'autocorrélation, sont tous à 1 ; si tous les paramètres étaient indépendants, tous les autres coefficients seraient proches de 0. Deux variables qui se compensent parfaitement auraient un coefficient hors-diagonale de valeur absolue 1, avec un signe plus si la relation est proportionnelle, moins si elle est inversement proportionnelle. Plus la valeur absolue des coefficients non-diagonaux est petite, plus les estimations de l'écart type de chaque paramètre sont proches de l'erreur standard asymptotique.
Pondérer les données fournit une base à l'interprétation de la sortie supplémentaire fournie par fit après la dernière itération. Même si vous pondérez tous vos points par la même valeur, estimer un écart-type moyen plutôt qu'un poids uniforme de 1 fait de SCRP une variable sans dimension, comme l'est khi-deux par définition.
Pendant le calcul, chaque itération affiche des informations permettant d'évaluer les progrés de l'ajustement. Une "*" indique que l'algorithme n'a pas trouvé de SCRP plus petite, et réessaye. La somme des carrés des résidus ("sum of squares of residuals"), également appelée "khi-deux", est la SCRP entre les données et la fonction ajustée ; c'est ce que fit a minimisé. A ce niveau, avec des données pondérées, khi-deux est censé s'approcher du nombre de degrés de libertés (le nombre de données moins le nombre de paramètres). La SCRP peut être utilisée pour calculer le khi-deux réduit (SCRP/ddl) ou stdfit, l'écart-type de l'ajustement =sqrt(SCRP/ddl). Les deux sont données par le rapport, à partir de la SCRP finale.
Si les données ne sont pas pondérées, stdfit est la valeur rms de l'écart des données à la fonction ajustée, en unités utilisateur.
Si vous avez fourni des erreurs valides sur les données, que le nombre de données et suffisant, et que le modèle est correct, le khi-deux réduit devrait avoisiner l'unité. Pour plus de détails, consultez "la distribution du khi-deux" dans votre cours de statistiques préféré. Si c'est bon, il existe des tests plus poussés, qui dépassent le cadre de cet aperçu, pour déterminer l'adéquation du modèle aux données.
Un khi-deux réduit très supérieur à 1.0 peut être dû à des estimations d'erreur incorrectes, des erreurs ne suivant pas une distribution normale, des erreurs de mesure systématiques, des "points aberrants", ou un modèle de fonction incorrect. Un tracé des résidus, par exemple plot "datafile" using 1:($2-f($1)), peut vous aider à découvrir une tendance systématique. Un tracé superposé des points de données et de la fonction peut vous suggérer un autre modèle.
Similairement, un khi-deux réduit inférieur à 1.0 indique que SCRP est inférieur à celui attendu pour un échantillon aléatoire de la fonction, avec des erreurs distribuées selon la loi normale. Les estimations d'erreurs sur les données sont peut-être trop grandes, ou la fonction modèle trop générale, s'adaptant aux fluctuations d'un modèle particulier, en plus des tendances générales sous-jacentes. Dans ce dernier cas, une fonction plus simple peut être plus appropriée.
Vous devrez vous habituer à utiliser fit sur votre genre de problèmes avant d'être capable d'interpréter les erreurs standard, de façon plus pratique, comme des incertitudes sur les paramètres ou d'évaluer la pertinence de la matrice de corrélation. De ce fait, un "point aberrant" aura un effet exagéré sur la solution.
Il y a plusieurs variables gnuplot qui peuvent être utilisées pour contrôler fit. Celles qui peuvent être définies après le lancement de gnuplot sont listées sous "variables_controle", celles définies avant le lancement de gnuplot sont sous "variables_environnement".
variables de contrôle [variables]
variables d'environnement [environnement]
L'epsilon limite par défaut (1e-5) peut être changé en affectant une valeur à
FIT_LIMIT
Le nombre maximum d'itérations peut être limité en affectant une valeur à
FIT_MAXITER
Affecter une valeur de 0 (ou ne pas déclarer la variable) signifie qu'il n'y a pas de limite.
FIT_START_LAMBDA
FIT_LAMBDA_FACTOR
D'autres variables avec le préfixe FIT_ pourront être ajoutées à fit, donc il est préférable d'éviter ce préfixe pour des variables utilisateur.
Les variables FIT_SKIP et FIT_INDEX étaient utilisées par des versions précédentes de gnuplot, avec un patch pour fit appelé gnufit, et ne sont plus disponibles. Le modificateur every pour les fichiers fournit les fonctionnalités de FIT_SKIP. FIT_INDEX était utilisé pour l'ajustement multi-branche, mais l'ajustement multi-branche d'une variable indépendante est maintenant traité comme un ajustement pseudo-3D pour lequel la seconde variable indépendante et using sont utilisés pour spécifier la branche. Voir "ajustement multi-branche".
Les variables d'environnement doivent être définies avant le démarrage de gnuplot. La manière de le faire dépend de votre système.
FIT_LOG
change le nom (et/ou le chemin) du fichier de rapport d'ajustement. La valeur par défaut est "fit.log", dans le répertoire courant.
FIT_SCRIPT
spécifie une commande à exécuter après une interruption utilisateur. La commande par défaut est replot, mais un plot ou un load peuvent être utiles pour afficher un tracé personnalisé permettant de visualiser l'avancement de l'ajustement.
f(x,y) = (y==0) ? a*exp(-x/tau) : b*exp(-x/tau)
fit f(x,y) 'datafile' using 1:-1:2:3 via a, b, tau
fit peut se retrouver perdu s'il démarre d'une région loin d'une solution, où SCRP est grande et varie lentement en fonction des paramètres, ou peut atteindre une région numériquement instable (par exemple, un flottant trop grand causant un débordement -floating point overflow-) qui résulte en un message "undefined value" ou un arrêt de gnuplot.
Pour augmenter les chances de trouver l'optimum global, vous avez intérêt à positionner les valeurs initiales au voisinage (approximatif) de la solution, par exemple, à moins d'un ordre de grandeur, si possible. Plus vos valeurs initiales sont proches de la solution, plus les risques de s'arrêter sur un autre optimum (local) sont faibles. Une manière de trouver des valeurs initiales est de tracer les données et la fonction à ajuster sur le même graphe, et de changer les valeurs des paramètres, et de faire replot jusqu'à trouver une ressemblance raisonnable. Le même tracé est également utile pour vérifier si l'ajustement n'a pas stoppé dans un minimum local qui n'"ajuste" pas bien.
Bien sûr, un ajustement raisonnablement bon n'est pas une preuve qu'il n'en existe pas de "meilleur" (soit dans le sens statistique, caractérisé par un critère d'adéquation plus élevé, soit dans le sens physique, ie une solution plus cohérente avec le modèle). Selon le problème, il peut être utile de tenter différents ajustements, avec des ensembles variés de valeurs initiales couvrant un intervalle raisonnablement large pour chaque paramètre.
Voici quelques trucs à garder à l'esprit pour utiliser efficacement fit. Ils ne sont pas très organisés, donc il vous faudra les lire plusieurs fois afin de vous en pénétrer pleinement.
Les deux formes de l'argument via de fit ont deux utilisations largement distinctes. La forme via "fichier" est plus adaptée au traitement en lot, où vous fournissez juste les valeurs initiales dans un fichier et pouvez ultérieurement utiliser update pour copier les résultats dans un autre (ou le même) fichier de paramètres.
La forme via var1, var2, ... est utilisée interactivement, avec l'aide de l'historique des commandes, pour éditer la liste des paramètres ou fournir de nouvelles valeurs initiales pour un nouvel essai d'ajustement. C'est particulièrement utile pour des problèmes difficiles, où un ajustement direct de tous les paramètres à la fois ne marche qu'avec de bonnes valeurs initiales. Pour les trouver, vous pouvez itérez plusieurs fois un ajustement partiel (certains paramètres), jusqu'à ce que les valeurs soient suffisamment proches de la solution.
Assurez vous qu'il n'y a pas de dépendance mutuelle entre les paramètres de la fonction que vous ajustez. Par exemple, n'essayez pas d'ajuster a*exp(x+b), puisque a*exp(x+b) = a*exp(b)*exp(x). Ajustez plutôt a*exp(x) OU exp(x+b) [plutôt la première forme, voir ci-après].
Un problème technique : les paramètres ne doivent pas être trop différents en ordre de grandeur. Plus le rapport entre le plus petit et le plus grand paramètre (en valeur absolue) est grand, plus l'ajustement va mettre du temps à converger. Si le rapport est proche ou plus grand que l'inverse de l'epsilon machine, ça peut prendre un temps infini pour converger, ou même ne pas converger du tout. Vous devez alors adapter votre fonction pour éviter ceci, par exemple; remplacer le paramètre "p" par "1e9*p" dans la définition de la fonction, et diviser la valeur initiale par 1e9.
Si vous pouvez écrire votre fonction comme combinaison linéaire de fonctions simples, chacune multipliée par un paramètre à ajuster, faites le. Cela aide grandement, en rendant le problème linéaire. La convergence s'effectue en un petit nombre d'opérations, éventuellement une seule.
Certaines recettes pour l'analyse de données, données dans des cours de pratique expérimentale, ont pu vous dire de procéder pas à pas, en ajustant tout d'abord certaines fonctions, pour en déduire certaines informations, souvent dans le but de souligner la théorie expliquant ces données, puis d'extraire l'information que vous voulez des paramètres de ces fonctions. Avec fit, tout peut souvent être fait en un seul pas, en écrivant directement la fonction modèle en terme de paramètres à ajuster. La transformation des données peut souvent être évitée, parfois au prix d'une plus grande complexité du problème à résoudre. Si vous pensez que cela contredit le paragraphe précédent sur la simplification de la fonction à ajuster, vous avez raison.
Un message "singular matrix" (matrice singulière) indique que l'implémentation de l'algorithme de Levenberg-Marquardt ne peut pas calculer les valeurs des paramètres pour l'itération suivante. Essayez des valeurs initiales différentes, une fonction plus simple, ou écrite sous une autre forme.
En conclusion, une jolie citation d'un autre logiciel d'ajustement (fudgit), qui résume un peu tous ces problèmes : "L'ajustement non-linéaire est un art."
help {<sujet>}
Si <sujet> n'existe pas, un message court sur gnuplot s'affiche. Une fois que l'aide requise sur le sujet a été fournie, un menu avec des sous-sujets apparaît. On peut étendre l'aide requise en demandant de l'aide sur l'un des sous-sujets : pour obtenir cette aide, tapez le nom du sous-sujet. Quand le sous-sujet a été affiché, l'aide peut être étendue une fois de plus, mais vous pouvez aussi remonter d'un niveau au sujet précédent. Finalement, la ligne de commande gnuplot réapparaîtra.
Si un point d'interrogation (?) est entré comme sujet de l'aide, la liste de tous les sujets disponibles est affichée à l'écran.
NOTES POUR LA VERSION FRANCAISE : Vous pourrez trouver après les intitulés de certains sujets d'aide, soit la version originale du sujet, entre parenthèses (), soit l'indication des mots-clés correspondant au sujet, entre crochets []
La commande if permet l'exécution conditionnelle de commandes.
if (<condition>) <ligne-de-commande>
pi=3
if (pi!=acos(-1)) print "?Ajustement de pi!"; pi=acos(-1); print pi
?Ajustement de pi!
3.14159265358979
if (1==2) print "Jamais vu ça"; print "Ni ça non plus"
Voir reread pour avoir un exemple de comment if et reread peuvent être utilisés ensemble pour réaliser une boucle.
La commande load exécute chaque ligne du fichier d'entrée spécifié comme si elle avait été tapée de façon interactive. Les fichiers créés par la commande save peuvent ultérieurement être chargés par load. N'importe quel fichier texte contenant des commandes valides peut être exécuté par load. Les fichiers chargés par load peuvent eux-mêmes contenir les commandes load et call. Voir "commentaires" pour avoir des informations sur les commentaires dans les commandes. Pour charger un fichier avec des arguments, voir call.
La commande load doit être la dernière sur une ligne de plusieurs commandes.
Syntaxe :
load "<fichier-d-entrée>"
Le nom du fichier d'entrée doit être entre guillemets.
Le fichier spécial "-" peut être utilisé pour charger des commandes depuis l'entrée standard. Ceci permet à un fichier de commandes gnuplot d'accepter quelques commandes depuis l'entrée standard. Veuillez vous référer à "help batch/interactive" pour plus de détails.
Exemples :
load 'work.gnu'
load "func.dat"
La commande load est exécutée implicitement sur tous les fichiers passés en argument à gnuplot. Ceux-ci sont chargés dans l'ordre spécifié, puis gnuplot s'arrête.
La commande pause affiche un texte associé à la commande puis attend pendant un laps de temps spécifié ou jusqu'à ce que le retour chariot soit pressé. pause est spécialement utile en conjonction avec des fichiers chargés par load.
Syntaxe :
pause <temps> {"<chaine>"}
<temps> peut être un entier constant ou une expression. Choisir -1 permet d'attendre jusqu'à ce que le retour chariot soit pressé ; choisir 0 ne donnera pas de pause ; choisir un entier positif permet d'attendre le nombre de secondes spécifiées. pause 0 est synonyme de print.
Note : du fait que pause communique avec le système d'exploitation et non avec les graphiques, elle peut se comporter différemment selon les différents terminaux (suivant comment le texte et le graphisme sont liés).
Exemples :
pause -1 # Attend jusqu'à ce que le retour chariot soit pressé
pause 3 # Attend trois secondes
pause -1 "Presser Entrée pour continuer"
pause 10 "N'est ce pas mignon ? C'est une spline cubique"
plot est la principale commande pour effectuer des tracés avec gnuplot. Elle crée des tracés de fonctions et de données, de nombreuses manières différentes. plot est utilisée pour les tracés 2d ; splot dessine des projections 2d de tracés 3d (surfaces et données). plot et splotont de nombreuses caractéristiques communes ; voir splotpour leurs différences. Notez en particulier que les options binary (binaire) et matrix (matrice) de splot n'existent pas pour plot.
Syntaxe :
plot {<intervalles>}
{<fonction> | {"<fichier_donnees>" {modif_fichier_donnees}}}
{axes <axes>} {<titre>} {with <style>}
{, {definitions,} <fonction> ...}
où soit une <fonction> soit le nom d'un fichier de données (entre guillemets) est fourni. Une fonction est une expression mathématique, ou une paire d'expressions mathématiques en mode paramétrique. Les expressions peuvent avoir été définies entièrement ou en partie précédemment dans les commandes gnuplot (voir user-defined).
Il est aussi possible de définir les fonctions et les paramètres dans la commande plot elle-même. Ca se fait essentiellement en les isolant des autres arguments par des virgules.
Il y a 4 (2x2) ensembles possibles d'axes disponibles ; le mot-clef <axes> est utilisé pour sélectionner les axes pour lesquels une courbe particulière doit être tracée. x1y1 désigne les axes bas et gauche ; x2y2 les axes haut et droit ; x1y2 les axes haut et gauche, et x2y1 les axes bas et droite. Les intervalles spécifiés dans la commande plot s'appliquent seulement au premier ensemble d'axes (x1y1).
Exemples :
plot sin(x)
plot f(x) = sin(x*a), a = .2, f(x), a = .4, f(x)
plot [t=1:10] [-pi:pi*2] tan(t), \
"data.1" using (tan($2)):($3/$4) smooth csplines \
axes x1y2 notitle with lines 5
fichier de données [fichier, donnees]
errorbars (barres d'erreur)
paramétrique (parametric)
intervalles (ranges)
title (titre)
with (avec -style-)
Des données discrètes contenues dans un fichier peuvent être tracées, en spécifiant le nom du fichier de donées entre guillemets (simples ou doubles) dans la commande plot.
Syntaxe :
plot '<file_name>' {index <index list>}
{every <every list>}
{thru <thru expression>}
{using <using list>}
{smooth <option>}
Les modificateurs index, every (1 tous les n), thru (par), using, et smooth (lisse) sont expliqués en détail plus loin. En résumé, - index indique quels ensembles de données doivent être tracés dans un fichier contenant plusieurs groupes de données ; - every indique quels points doivent être tracés, dans un unique ensemble de données ; - using détermine comment les colonnes d'un seul enregistrement doivent être interprétées (thru est un cas particulier de using) ; - smooth permet une interpolation et une approximation simples. (splot a une syntaxe similaire mais ne permet ni l'usage de smooth ni celui de thru).
Les fichiers de données devraient contenir au moins un point-donnée par enregistrement (using peut sélectionner un point dans l'enregistrement). Les enregistrements commençant par # (et aussi ! sous VMS) seront traités comme commentaires et ignorés. Chaque point de données représente une paire (x,y). Pour les tracés avec barres d'erreur (voir set style errorbars), chaque point de donnée est de la forme (x,y,ydelta), (x,y,ybas,yhaut), (x,y,xdelta), (x,y,xbas,xhaut), ou (x,y,xbas,xhaut,ybas,yhaut). Dans tous les cas, les nombres de chaque enregistrement du fichier doivent être séparés par un blanc (un ou plusieurs espaces ou tabulations), à moins qu'une spécification de format ne soit fournie par l'option using. Ces espaces divisent chaque enregistrement en colonnes.
Les données peuvent être écrites en notation scientifique, l'exposant étant précédé par la lettre e, E, d, D, q ou Q.
Une seule colonne est indispensable : la valeur y. Si x est omis, gnuplot utilise des valeurs entières, à partir de 0.
Dans les fichiers de données, les enregistrements vides (sans caractères autres que des blancs et un saut de ligne et/ou un retour chariot) sont significatifs : les paires d'enregistrements vides séparent les index (voir plot fichier index). Les données séparées par deux enregistrements vides sont traités comme provenant de fichiers séparés.
Les enregistrements vides simples désignent des discontinuités dans un tracé : aucune ligne ne joindra des points séparés par un enregistrement vide (s'ils sont tracés avec le style ligne).
Si le calcul automatique de l'intervalle a été sélectionné (set autoscale), les axes sont automatiquement étendus pour inclure tous les points, avec un nombre entier de graduations (si elles sont tracées). A ceci, deux conséquences : i) Avec splot, le coin de la surface peut ne pas coïncider avec le coin de la base. Dans ce cas, aucune ligne verticale n'est tracée. ii) En cas de tracé de données sur le même intervalle x, sur un graphe à deux ensembles d'axes, les coordonnées x peuvent ne pas coïncider si les graduations x2 (x2tics) ne sont pas tracées. C'est parce que l'axe x a été étendu automatiquement à un nombre entier de graduations, mais pas l'axe x2. L'exemple suivant illustre le problème :
reset; plot '-', '-'
1 1
19 19
e
1 1
19 19
e
every (tous les)
Exemple de fichiers de données [fichier exemple]
index
smooth (lissage)
noms de fichiers spéciaux [fichier special]
thru
using
Le mot-clef every permet un échantillonnage périodique de l'ensemble des données à tracer.
Dans la suite, un "point" est une donnée définie par un seul enregistrement dans le fichier, et "bloc" aura le même sens que "bloc de données" (datablock, voir glossaire).
Syntaxe :
plot 'fichier' every {<incr_point>}
{:{<incr_bloc>}
{:{<point_debut>}
{:{<bloc_debut>}
{:{<point_fin>}
{:<bloc_fin>}}}}}
Les points à tracer sont sélectionnés parmi les données selon une boucle entre <point_debut> et <point_fin> avec l'incrément <incr_point>, et les blocs selon une boucle entre <bloc_debut> et <bloc_fin> avec l'incrément <incr_bloc>.
La première donnée de chaque bloc est numéroté '0', de même que le premier bloc du fichier.
Notez que les enregistrements qui contiennent des informations non traçables sont comptés.
Chacun des nombres peut être omis ; l'incrément est 1 par défaut, les valeurs de début et de fin sont prises sur le premier et le dernier point ou bloc. Si every est omis, tous les points de toutes les lignes sont tracés.
Exemples :
every :::3::3 # sélectionne juste le 4e bloc (le premier est '0')
every :::::9 # sélectionne les 10 premiers blocs
every 2:2 # sélectionne un point sur deux dans un bloc sur deux
every ::5::15 # sélectionne les points 5 à 15 de chaque bloc
Démos de tracés simples (plot),
Démos de tracés de surfaces non paramétriques (splot), and
Démos de tracés de surfaces paramétriques.
Cet exemple trace les données du fichier "population.dat" et une courbe théorique :
pop(x) = 103*exp((1965-x)/10)
plot [1960:1990] 'population.dat', pop(x)
Le fichier "population.dat" pourrait contenir :
# Population de gnous (Gnu) en Antarctique depuis 1965
1965 103
1970 55
1975 34
1980 24
1985 10
plot 'fichier' index <m>{{:<n>}:<p>}
plot 'fichier' index 4:5 Démo de splot avec index.
gnuplot inclut quelques routines générales pour l'interpolation et l'approximation des données ; elles sont groupées sous l'option smooth. Des traitements plus sophistiqués peuvent être effectués en pré-traitant les données extérieurement ou en utilisant fit avec un modèle approprié.
Syntaxe :
smooth {unique | csplines | acsplines | bezier | sbezier}
unique trace les données après les avoir rendu monotones. Toutes les autres routines utilisent les données pour détermineir les coefficients d'une courbe continue entre les points extrêmaux des données. Cette courbe est alors tracée comme une fonction, c'est à dire en calculant ses valeurs à intervalles réguliers sur l'abscisse (voir set samples) et en connectant ces points par des segments de droites (si un style ligne est choisi).
Si autoscale est en service, les intervalles seront calculés pour que la courbe tracée soit située à l'intérieur des bordures du graphe.
Si trop peu de points sont disponibles pour appliquer l'option sélectionnée, un message d'erreur est produit. Le nombre minimal est d'un point pour unique, quatre pour acsplines, et trois pour les autres options.
Les options smooth n'ont aucun effet sur les tracés de fonctions.
acsplines
bezier
csplines
sbezier
unique
L'option acsplines approche les données par une "spline de lissage naturelle".
Après que les données sont ordonnées selon les x croissants (voir smooth unique), une courbe est construite par morceaux, par des segments de polynômes cubiques, dont les coefficients sont calculés à partir des points pondérés des données. Les poids sont pris dans la 3e colonne du fichier de données. Ce comportement par défaut peut être modifié par la 3e entrée de la liste using, par exemple :
plot 'fichier' using 1:2:(1.0) smooth acsplines
Qualitativement, la valeur absolue des poids détermine le nombre de segments utilisés pour construire la courbe. Si les poids sont élevés, l'effet de chaque donnée est important et la courbe les approche en connectant les points consécutifs par des splines cubiques naturelles. Si les poids sont faibles, la courbe est composée de moins de segments et est donc plus lisse ; le cas limite est un simple segment produit par un ajustement aux moindres carrés pondéré sur toutes les données. Le poids de lissage peut s'exprimer en termes d'erreurs comme : un poids statistique pour un point divisé par un "facteur de lissage" pour la courbe, de sorte que les erreurs (standard) du fichier puissent être utilisées en tant que poids de lissage.
Exemple :
sw(x,S)=1/(x*x*S)
plot 'fichier' using 1:2:(sw($3,100)) smooth acsplines
L'option csplines connecte les points consécutifs par des splines cubiques naturelles après avoir rendu les données x-monotones (voir smooth unique).
L'option sbezier rend tout d'abord les donées monotones (unique), puis applique l'algorithme bezier.
L'option unique rend les données monotones en x ; les points de même abscisse sont remplacés par un seul point d'ordonnée moyenne. Les points résultant sont connectés par des segments de droite. Voir les démos.
Le nom de fichier spécial '-' spécifie que les données sont en ligne, ie elles suivent la commande. Seulent les données suivent la commande, les options de plot comme les filtres, titres, styles, etc. restent sur la ligne de commande plot. C'est similaire à << des scripts shell Unix et à $DECK en DCL VMS. Les données sont rentrées comme si elles étaient lues d'un fichier, un point par enregistrement. La lettre "e" en début de première colonne termine l'entrée des données. L'option using peut être appliquée à ces données : s'en servir pour les filtrer par une fonction peut avoir un sens, pour sélectionner certaines colonnes peut-être pas !
'-' est prévu pour les situations où il est utile d'avoir les données et les commandes ensemble, par exemple quand gnuplot est lancé comme sous-processus d'une application frontale. Certaines des démos, par exemple, utilisent cette caractéristique. Bien que les options index et every de plot soient reconnues, leur usage force à entrer des données inutiles. Par exemple, bien que :
plot '-' index 0, '-' index 1
2
4
6
10
12
14
e
2
4
6
10
12
14
e
marche tout-à-fait,
plot '-', '-'
2
4
6
e
10
12
14
e
est quand même plus facile à taper !
Si vous utilisez '-' avec replot, vous pourrez avoir à entrer les données plusieurs fois (voir replot).
Un nom de fichier vide ('') indique qu'il faut réutiliser le nom précédent. Ca peut être utile avec des choses du style :
plot 'a/very/long/filename' using 1:2, '' using 1:3, '' using 1:4
(Si vous utilisez à la fois '-' et ''dans la même commande plot, vous avez besoinde deux ensembles de données en ligne, comme dans l'exemple ci-dessus.)
Sur certains bons systèmes d'exploitation (Unix), le fichier de données peut être redirigé par un tube (pipe) à partir d'une commande shell, en commençant le nom du fichier par un '<'. Par exemple,
pop(x) = 103*exp(-x/10)
plot "< awk '{print $1-1965, $2}' population.dat", pop(x)
tracerait les mêmes informations que le premier exemple de population, mais avec les années depuis 1965 sur l'axe des abscisses. Si vous voulez lancer cet exemple, vous devez supprimer tout commentaire du fichier de données ci-dessus ou subtituer la commande suivante à la première partie (avant la virgule) de la commande ci-dessus :
plot "< awk '$0 !~ /^#/ {print $1-1965, $2}' population.dat"
Bien que cette approche soit plus souple, il est aussi possible d'effectuer un filtrage simple par les mots-clefs using et thru.
La fonction thru est fournie pour assurer la compatibilité ascendante.
plot 'file' thru f(x)
plot 'file' using 1:(f($2))
plot 'file' thru f(y)
marche aussi (ie vous pouvez utiliser y comme variable muette).
thru est accepté par splot et fit mais reste sans effet.
Le modificateur le plus courant pour les fichiers de données est using.
plot 'fichier' using {<entree> {:<entree> {:<entree> ...}}} {'format'}
N.B. : la commande call utilise aussi des $ comme caractères spéciaux. Voir call pour les détails sur la façon d'inclure un numéro de colonne dans une liste d'arguments call.
Si la liste using n'a qu'une seule entrée, cette entrée sera utilisée pour y et le numéro de point de donnée est utilisé pour x ; par exemple, "plot 'file' using 1" est identique à "plot 'file' using 0:1". Si la liste using comporte deux entrées, elles seront utilisées pour x et y. Les entrées supplémentaires représentent habituellement des erreurs en x ou y. Voir set style pour les détails sur les styles de tracé qui utilisent cette information d'erreur, et fit pour l'utilisation de cette information dans l'ajustement de courbe (curve fitting).
'scanf' accepte plusieurs spécifications numériques mais gnuplot n'accepte en entrée que des réels en virgule flottante double précision, donc lf est le seul spécificateur permis. 'scanf' attend des blancs - espace, tabulation ("\t"), saut de ligne ("\n"), ou saut de page ("\f") - entre les nombres ; tout le reste doit explicitement être éliminé de la chaîne d'entrée.
Notez que l'utilisation de "\t", "\n" et "\f" exige l'utilisation de guillemets doubles au lieu de guillemets simples.
Exemples :
Ceci crée un tracé de la somme des 2e et 3e colonnes en fonction de la première : (la chaîne de format spécifie des colonnes séparées par des virgules plutôt que des espaces)
plot 'fichier' using 1:($2+$3) '%lf,%lf,%lf'
Dans cet exemple, les données sont lues dans le fichier "MesDonnees" selon un format plus compliqué :
plot 'MesDonnees' using "%*lf%lf%*20[^\n]%lf"
La signification de ce format est :
%*lf ignore un nombre
%lf lit un nombre double précision (x par défaut)
%*20[^\n] ignore 20 caractères non-saut-de-ligne
%lf lit un nombre double précision (y par défaut)
Une astuce consiste à utiliser l'opérateur ternaire ?: pour filtrer les données :
plot 'fichier' using 1:($3>10 ? $2 : 1/0)
ce qui trace la donnée de la colonne 2 en fonction de la colonne 1 à condition que la donnée de la colonne 3 dépasse 10. 1/0 est indéfini ; gnuplot ignore silencieusement les points indéfinis, de sorte que les points qui ne conviennent pas se trouvent supprimés.
Vous pouvez aussi utiliser une expression constante pour le numéro de colonne, à condition qu'elle ne commence pas par une parenthèse ouvrante ; une construction du type using 0+(expression compliquée) peut être utilisée. La règle est que l'expression est évaluée une fois si elle ne débute pas par une parenthèse ouvrante, et à chaque point lu sinon.
Si des données contenant des séries temporelles sont utilisées, le temps peut s'étendre sur plusieurs colonnes. La colonne de départ doit être spécifiée. Notez que les espaces inclus dans l'indication temporelle doivent être pris en compte pour le calcul des colonnes de départ poure les autres données. Par exemple, si le premier élément d'une ligne est un temps incluant un espace, l'ordonnée doit être spécifiée en colonne 3.
Notez que plot 'fichier', plot 'fichier' using 1:2, et plot 'fichier' using ($1):($2) peuvent recéler de subtiles différences : 1) si fichier comporte des lignes à une colonne, et d'autres à deux, la première commande inventera des valeurs x lorsqu'elles manqueront, la deuxième ignorera silencieusement les lignes à une seule colonne, et la troisième stockera une valeur indéfinie pour les lignes à une valeur, de sorte que pour un tracé avec le style ligne, aucune ligne ne joindra les points encadrant le mauvais point ; 2) si une ligne contient un texte dans sa première colonne, la première commande arrêtera le tracé sur une erreur, mais la deuxième et la troisième élimineront silencieusement la ligne défectueuse.
En réalité, il est souvent possible de tracer un fichier avec beaucoup de lignes défectueuses très simplement en spécifiant :
plot 'file' using 1:2
Malgré tout, si vous voulez mettre du texte dans vos fichiers de données, il est plus sûr de commenter la ligne en plaçant un # (dièse) sur la première colonne. Petites démos de using.
Les barres d'erreur sont disponibles pour le tracé 2d de fichiers de données, en utilisant une à quatre colonnes supplémentaires (ou entrées using) ; ces valeurs supplémentaires sont utilisées de différentes façons par les différents styles de barres d'erreur. Par défaut, gnuplot attend 3, 4 ou 6 nombres par ligne, soit
(x, y, ydelta),
(x, y, ybas, yhaut),
(x, y, xdelta),
(x, y, xbas, xhaut),
(x, y, xdelta, ydelta), ou
(x, y, xbas, xhaut, ybas, yhaut).
L'abscisse doit être spécifiée. L'ordre des valeurs doit être respecté, bien que l'option using puisse manipuler l'ordre et fournir des valeurs pour les colonnes manquantes. Par exemple,
plot 'file' with errorbars
plot 'file' using 1:2:(sqrt($1)) with xerrorbars
plot 'file' using 1:2:($1-$3):($1+$3):4:5 with xyerrorbars
Le dernier exemple concerne un fichier contenant une combinaison d'erreurs relative en x et absolue en y, non supporté nativement par gnuplot : l'entrée permet de transformer l'erreur relative sur x en erreur absolue.
La barre d'erreur sur y esr un segment vertical tracé de (x, ybas) à (x, yhaut). Si ydelta est spécifié au lieu de ybas et yhaut, ces derniers sont calculés par ybas = y -ydelta ; yhaut = y + ydelta. Si l'enregistrement ne comporte que 2 nombres, ybas et yhaut sont pris égaux à y. La barre d'erreur sur x est un segment horizontal calculé de la même façon. Pour obtenir un tracé de lignes joignant les points de données, tracez le fichier de données deux fois, une fois avec les barres d'erreurs, et une fois avec les lignes (mais pensez à utiliser l'option notitle sur l'un des deux, pour éviter d'avoir deux entrées dans la légende).
Les barres d'erreur sont délimitées par des petites barres perpendiculaires à moins que la commande set bar ne soit utilisée (voir set bar) pour les détails.
Si le calcul automatique des intervalles est en service, les intervalles seront ajustés pour inclure les barres d'erreur. Démos de barres d'erreur.
Voir plot using, plot with, et set style pour plus d'information.
En mode paramétrique (set parametric), les expressions mathématiques doivent être données sous forme de paires pour plot et de triplets pour splot.
Exemples :
plot sin(t),t**2
splot cos(u)*cos(v),cos(u)*sin(v),sin(u)
Les fichiers de données sont tracés comme précédemment, excepté que toute fonction paramétrique précédente doit être entièrement spécifiée avant qu'un fichier de données soit indiqué. En d'autres termes, les fonctions paramétriques x (sin(t) ci-dessus) et y (t**2 ci-dessus) ne doivent pas être interrompus par des modificateurs ou des fonctions ; autrement, cela générera une erreur de syntaxe signalant que la fonction paramétrique n'est pas complètement spécifiée.
D'autres modificateurs, comme with et title, peuvent être spécifiés dès que la fonction paramétrique a été spécifiée :
plot sin(t),t**2 title 'Parametric example' with linespoints Démos du mode paramétrique
L'option ranges spécifie la région du graphe (intervalles) qui doit être affichée.
[{<var-muette>=}{{<min>}:{<max>}}]
[{{<min>}:{<max>}}]
La première forme s'applique à la variable indépendante (xrange, ou trange en mode paramétrique). La seconde forme s'applique à la variable liée yrange (et xrange aussi en mode paramétrique). <var-muette> est un nouveau nom pour la variable indépendante. (Les valeurs par défaut peuvent être changées avec set dummy). Les termes optionnels <min> et <max> peuvent être des expressions constantes ou bien *.
En mode non paramétrique, l'ordre dans lequel les intervalles doivent être donnée est xrange puis yrange.
En mode paramétrique, l'ordre pour la commande plot est trange, xrange, puis yrange. La commande plot suivante utilise les intervalles suivants : trange à [-pi:pi], xrange à [-1.3:1.3] et yrange à [-1:1] pour ce graphe :
plot [-pi:pi] [-1.3:1.3] [-1:1] sin(t),t**2
Notez que les intervalles x2range et y2range ne peuvent pas être spécifiés ici : les commandes set x2range et set y2range doivent être utilisées.
Les intervalles sont interprétés selon l'ordre donné ci-dessus pour le mode approprié. Une fois que tous les intervalles nécessaires sont spécifiés, aucun autre ne doit être listé, mais les superflus ne peuvent être éliminés : utilisez un intervalle vide [] à la place.
* peut être utilisé pour permettre le calcul automatique des bornes inférieure et/ou supérieure de l'intervalle. Voir set autoscale.
Les intervalles spécifiés dans une commande plot ou splot affectent seulement ce graphe ; utilisez les commandes set xrange, set yrange, etc. pour changer les intervalles par défaut pour tous les futurs graphes.
Avec des données temporelles, vous devez fournir l'intervalle (de la même manière que le temps apparaît dans le fichier de données) entre guillemets. gnuplot utilise la chaîne timefmt pour lire les valeurs, voir set timefmt.
Exemples :
Ceci utilise les intervalles courants :
plot cos(x)
Ceci fixe l'intervalle en abscisse seulement :
plot [-10:30] sin(pi*x)/(pi*x)
La même chose, mais utilise t comme variable muette :
plot [t = -10 :30] sin(pi*t)/(pi*t)
Ceci fixe les intervalles en abscisse et en ordonnée :
plot [-pi:pi] [-3:3] tan(x), 1/x
Ceci fixe seulement l'intervalle en ordonnée, et désactive leur calcul automatique sur les deux axes :
plot [ ] [-2:sin(5)*-8] sin(x)**besj0(x)
Ceci fixe seulement xmax et ymin :
plot [:200] [-pi:] exp(sin(x))
Ceci fixe l'intervalle en abscisse pour une série temporelle :
set timefmt "%d/%m/%y %H:%M"
plot ["1/6/93 12:00":"5/6/93 12:00"] 'timedata.dat'
Une ligne de titre apparaît dans la légende pour chaque fonction et ensemble de données tracés, accompagnée d'un échantillon de la ligne ou du symbole utilisé pour les représenter. Cette indication peut être changée par l'option title.
Syntaxe :
title "<titre>" | notitle
où <titre> est le nouveau titre du tracé, entre guillemets (qui n'apparaissent pas dans la légende). Un caractère spécial peut être passé par un backslash suivi de sa valeur octale ("\345"). Le caractère tabulation "\t" est comprise. Notez que le traitement des backslashs n'est effectué que pour les chaînes entre guillemets doubles ; utilisez des guillemets simples pour éviter ce traitement. Le caractère saut-de-ligne "\n" n'est pas traité, quel que soit le type de chaîne.
L'affichage du titre de la courbe et de l'échantillon peut être empêché en utilisant le mot clef notitle. Un titre vide (title '') a le même effet. Si vous désirez l'échantillon de courbe seul, utilisez un blanc (title ' ').
Par défaut, le titre de la courbe est la fonction ou le nom de fichier, comme ils apparaissent dans la commande plot. Si c'est un nom de fichier, tout modificateur de fichier de donée spécifié apparaîtra dans le titre par défaut.
La mise en page de la légende elle-même (position, justification des titres, etc.) peut être contrôlée par 'set key'. Voir set key pour plus de détails.
Exemples :
Ceci trace y=x avec le titre 'x' :
plot x
Ceci trace x carré avec le titre "x^2" et le fichier "data.1" avec le titre "données mesurées" :
plot x**2 title "x^2", 'data.1' t "données mesurées"
Ceci trace une frontière circulaire sans titre autour d'un graphe polaire :
set polar; plot my_function(t), 1 notitle
with <style> { {style-ligne | ls <style_ligne>}
| {{type-ligne | lt <type_ligne>}
{largeur-ligne | lw <largeur_ligne>}
{type-point | pt <type_point>}
{taille-point | ps <taille_point>}} }
où <style> vaut lines, points, linespoints, impulses, dots, steps, fsteps, histeps, errorbars, xerrorbars, yerrorbars, xyerrorbars, boxes, boxerrorbars, boxxyerrorbars, financebars, candlesticks ou vector. Certains de ces styles demandent des informations complémentaires. Voir set style <style> pour des détails sur chaque style.
Les styles par défaut sont choisis grâce aux commandes set function style et set data style.
Par défaut, chaque fonction et fichier de données utilisera un type de courbe et de point différent, jusqu'au nombre maximal de types disponibles. Tous les pilotes de terminaux supportent au moins 6 types différents de points, et les ré-utilisent, dans l'ordre, s'il en faut plus. Le driver LaTeX fournit six types de points supplémentaires (toutes les variantes d'un cercle), et donc ne se répétera qu'après 12 courbes tracées avec des points. Les pilotes PostScript (postscript) fournissent au total 64 types.
Si vous voulez choisir le type de courbe ou de point pour un seul tracé, <line_type> et <point_type> peuvent être spécifiés. Ce sont des constantes (ou des expressions) entières positives qui spécifient les types de courbe et de point à utiliser pendant le tracé. Utilisez test pour afficher les différents types disponibles sur votre terminal.
Vous pouvez aussi dimensionner la largeur de la courbe et la taille des points en utilisant <largeur_ligne> et <taille_point>, qui sont des facteurs s'appliquant aux valeurs par défaut pour chaque terminal. La taille des points peut aussi être modifiée globalement - voir set pointsize pour les détails. Mais notez le réglage de la taille des points, aussi bien dans la commande plot que par set pointsize multiplie la taille par défaut ; leurs effets ne se cumulent pas. Ainsi, la commande set pointsize 2; plot x with points ps 3 affichera des points trois fois (et non six fois) plus grands que les points par défaut.
Si vous avez défini des combinaisons spéciales de type/largeur de ligne et de type/taille de point avec set linestyle, l'une d'elles peut directement être sélectionnée en positionnant <style_ligne> à l'index du style désiré.
les mots-clefs peuvent être abrégés comme indiqué.
Notez que les options linewidth et pointsize ne sont pas supportées par tous les terminaux.
Exemples :
Ceci trace sin(x) avec des impulsions :
plot sin(x) with impulses
Ceci trace x avec des points, x**2 avec le style par défaut :
plot x*y w points, x**2 + y**2
Ceci trace tan(x) avec le style par défaut pour les fonctions, et le fichier "data.1" avec des lignes :
plot [ ] [-2:5] tan(x), 'data.1' with l
Ceci trace "leastsq.dat" avec des impulsions (impulses) :
plot 'leastsq.dat' w i
Ceci trace le fichier de données "population" avec des boîtes :
plot 'population' with boxes
Ceci trace le fichier "exper.dat" avec des barres d'erreur et des lignes joignant les points (les barres d'erreur nécessitent 3 ou 4 colonnes) :
plot 'exper.dat' w lines, 'exper.dat' notitle w errorbars
Ceci trace sin(x) et cos(x) avec linespoints, en utilisant le même type de ligne, mais différents types de point :
plot sin(x) with linesp lt 1 pt 3, cos(x) with linesp lt 1 pt 4
Ceci trace le fichier "donnees" avec des points de type 3 et de taille double:
plot 'data' with points pointtype 3 pointsize 2
Ceci trace deux ensembles de données, avec des lignes différant seulement par leur poids (weight) :
plot 'd1' t "good" w l lt 2 lw 3, 'd2' t "bad" w l lt 2 lw 1
Voir set style pour changer les styles par défaut. Démos de styles
La commande print affiche la valeur d'<expression> à l'écran. C'est un synonyme de pause 0. <expression> peut être quoi que ce soit que gnuplot peut évaluer et qui résulte en un nombre, ou bien une chaîne.
Syntaxe :
print <expression> {, <expression>, ...}
Voir expressions.
La commande pwd affiche le nom du répertoire courant à l'écran.
Les commandes exit et quit et le caractère FIN-DE-FICHIER (EOF) terminent gnuplot. Chacune de ces commandes efface le périphérique de sortie (comme la commande clear) avant de terminer.
La commande replot sans arguments répète la dernière commande plot ou splot. Ca peut être utile pour visualiser un tracé avec différentes options set, ou pour générer le même tracé pour plusieurs périphériques.
Les arguments spécifiés après une commande replot seront ajoutés à la dernière commande plot ou splot (séparés par une virgule implicite) avant que la commande ne soit répétée. replot accepte les mêmes arguments que plot et splot, sauf que les intervalles ne peuvent pas être spécifiés. Par conséquent, vous pouvez utiliser replot pour tracer une fonction par rapport aux seconds axes si la commande précédente était plot, mais pas si c'était splot. Symétriquement, vous pouvez utiliser replot pour ajouter un tracé à partir d'un fichier binaire si la commande précédente était splot.
N.B. : l'utilisation de
plot '-' ; ... ; replot
n'est pas recommandée : gnuplot ne stocke pas en interne les données en ligne, donc comme replot ajoute de nouvelles informations au plot précédent, puis exécute la commande modifiée, le '-' du plot initial attend une nouvelle fois les données en ligne.
Notez que replot ne marche pas en mode multiplot, puisqu'il reproduit seulement le dernier tracé et non l'écran entier.
Voyez aussi command-line-editing concernant les manières d'éditer la dernière commande plot (splot).
La commande reread n'a d'effet que dans un fichier de commande gnuplot, chargé par load ou par la ligne de commande. Elle redémarre l'exécution du fichier de commande au début, empêchant les commandes suivant reread d'être lues. Il en résulte essentiellement une boucle sans fin, entre le début du fichier et la commande reread ; ceci n'engendre pas forcément un désastre : reread peut être très utile en conjonction avec if. Voir if pour les détails.
Exemples d'utilisation :
Supposons que le fichier "boucle" contienne les commandes
a=a+1
plot sin(x*a)
pause -1
if(a<5) reread
et que dans gnuplot vous tapiez les commandes
a=0
load 'boucle'
Le résultat sera 4 tracés (séparés par le message pause).
Supposons que le fichier "donnees" contienne 6 colonnes de nombre, avec un intervalle total sur y de 0 à 10. La première valeur est l'abscisse, les suivantes sont 5 fonctions différentes de x. Supposons également que le fichier "traceur" contienne les commandes
c_p = c_p+1
plot "$0" using 1:c_p with lines linetype c_p
if(c_p < n_p) reread
et que dans gnuplot vous tapiez les commandes
n_p=6
c_p=1
set nokey
set yrange [0:10]
set multiplot
call 'traceur' 'donnees'
set nomultiplot
Le résultat est un seul graphe consistant en 5 tracés. L'intervalle en y doit être donné explicitement, pour garantir que les 5 tracés séparés (tracés l'un sur l'autre en mode multiplot) utilisent exactement les mêmes axes. Le type de ligne doit être spécifié, sans quoi tous les tracés seront confondus avec le même type. Démo d'animation reread
La commande reset remet à leurs valeurs par défaut toutes les options qui peuvent être positionnées par la commande set, à deux exceptions près : le terminal (set term) et le fichier de sortie (set output) restent inchangés. Cette commande est utile, par exemple pour restaurer les valeurs par défaut à la fin d'un fichier de commande, ou pour revenir à un état connu après l'exécution d'un fichier de commande ayant modifié beaucoup d'options. Veuillez vous référer à la commande set pour connaître les valeurs par défaut des différentes options.
La commande save sauve les fonctions définies par l'utilisateur, les variables, ou les options positionnées par set, ou les trois, plus la dernière commande plot (ou splot), dans le fichier spécifié.
Syntaxe :
save {<option>} '<nomfichier>'
où <option> vaut functions, variables ou set. Si aucune option n'est utilisée, gnuplot sauve les fonctions, les variables, les options positionnées par set, et la dernière commande plot (ou splot).
Les fichiers sauvés sont écrits en format texte et peuvent être lus par la commande load.
Le nom de fichier doit être entre guillemets.
Exemples :
save 'work.gnu'
save functions 'func.dat'
save var 'var.dat'
save set 'options.dat'
La commande set peut être utilisée pour régler _beaucoup_ d'options. Cependant, rien n'est tracé tant que les commandes plot, splot, ou replot ne sont pas lancées.
La commande show montre les réglages effectués ; show all montre tous les réglages.
Si une variable contient des données de temps (heure/date), show la montre en appliquant le format défini par set timefmt, même s'il n'était pas encore positionné lors de la définition initiale de la variable.
angles
arrow
autoscale
bar
bmargin
border
boxwidth
clabel
clip
cntrparam
contour
data style
dgrid3d
dummy
encoding
format
function style (style des tracés de fonctions)
functions (fonctions)
grid (quadrillage)
hidden3d (lignes cachées)
isosamples
key (légende)
label (étiquette)
linestyle (style de ligne)
lmargin (marge de gauche)
locale (langue par défaut)
logscale (échelle logarithmique)
mapping (représentation)
margin (marges)
missing (donnée manquante)
multiplot (tracé multiple)
mx2tics
mxtics
my2tics
mytics
mztics
offsets (retraits)
origin (origine)
output (sortie)
parametric (mode paramétrique)
pointsize (taille des points)
polar (mode polaire)
rmargin (marge droite)
rrange (intervalle en r)
samples (échantillonnage)
size (taille)
style
surface
terminal
tics
ticslevel
ticscale
timestamp (horodatage)
timefmt
title (titre)
tmargin
trange
urange
variables
version
view
vrange
x2data
x2dtics
x2label
x2mtics
x2range
x2tics
x2zeroaxis
xdata
xdtics
xlabel
xmtics
xrange
xtics
xzeroaxis
y2data
y2dtics
y2label
y2mtics
y2range
y2tics
y2zeroaxis
ydata
ydtics
ylabel
ymtics
yrange
ytics
yzeroaxis
zdata
zdtics
zero
zeroaxis
zlabel
zmtics
zrange
ztics
Par défaut, gnuplot suppose que les variables indépendantes des représentations polaires sont en radians. Si set angles degrees est demandé avant set polar, l'intervalle des valeurs est par défaut [0:360] et les variables indépendantes sont comptées en degrés. C'est particulièrement utile pour le tracé de fichiers de données. Ce réglage des unités angulaires s'applique aussi aux représentations 3-d obtenues par la commande set mapping.
Syntaxe :
set angles {degrees | radians}
show angles
L'angle passé dans set grid polar est aussi lu et affiché dans les unités fixées par set angles.
set angles affecte aussi les arguments des fonctions trigonométriques sin(x), cos(x) et tan(x), et les résultats de asin(x), acos(x), atan(x), atan2(x), et arg(x). Ca n'a pas d'effet sur les arguments des fonctions hyperboliques ou sur les fonctions de Bessel. Néanmoins, les résultats des fonctions hyperboliques inverses d'arguments complexes sont affectés ; dans ce cas, il vaut mieux préciser set angles radians pour maintenir la cohérence entre les valeurs d'entrée et de sortie.
x={1.0,0.1}
set angles radians
y=sinh(x)
print y #affiche {1.16933, 0.154051}
print asinh(y) #affiche {1.0, 0.1}
mais
set angles degrees
y=sinh(x)
print y #affiche {1.16933, 0.154051}
print asinh(y) #affiche {57.29578, 5.729578}
Représentation polaire utilisant `set angles`.
Des flèches arbitraires peuvent être placées avec la commande set arrow
set arrow {<tag>} {from <position>} {to <position>} {{no}head}
{ {linestyle | ls <style_ligne>}
| {linetype | lt <type_ligne>}
{linewidth | lw <largeur_ligne} }
set noarrow {<tag>}
show arrow
Les <position>s sont désignées par x,y ou x,y,z, et peuvent être précédées par first, second, graph, ou screen pour choisir le système de coordonnées. Des coordonnées non initialisées sont à 0 par défaut. Les extrémités peuvent être exprimées dans l'un des quatre repères -les axes first ou second, graph ou screen. Voir coordinates pour les détails. Les positions de départ "from" et d'arrivée "to" doivent être exprimées dans le même repère. Les flèches qui sortent des limites de l'écran "screen" sont autorisées mais peuvent provoquer des erreurs matérielles.
l'attribut nohead produit une flèche sans pointe -un segment de droite. C'est une autre façon d'ajouter des traits sur les figures. Par défaut, les flèches ont une pointe.
Le style de ligne peut être choisi dans une liste de styles de lignes définie par l'utilisateur (voir set linestyle) ou peut être défini ici en précisant les valeurs de <type_ligne> (un index de types de lignes par défaut) et/ou <largeur_ligne> (qui est un coefficient multiplicateur de la largeur par défaut).
Il est à noter, cependant, que les propriétés de type et de largeur (width) d'un style de ligne utilisateur ne peuvent pas être modifiées autrement qu'en définissant un autre set arrow avec un index approprié et les nouveaux paramètres lt ou lw.
Exemples :
Pour définir une flèche pointant de l'origine au point (1,2) avec un style utilisateur 5, on a :
set arrow to 1,2 ls 5
Pour définir une flèche partant du bas gauche de la zone de tracé vers le point (-5,5,3), et lui attribuer le numéro 3, on tape :
set arrow 3 from graph 0,0 to -5,5,3
Pour modifier la précédente flèche pour qu'elle finisse en 1,1,1 sans pointe et une largeur double, taper :
set arrow 3 to 1,1,1 nohead lw 2
Pour tracer une ligne verticale de bas en haut d'un graphe en x=3, taper :
set arrow from 3, graph 0 to 3, graph 1 nohead
Pour supprimer la flèche numéro 2, taper :
set noarrow 2
Pour supprimer toutes les flèches, taper :
set noarrow
Pour voir toutes les flèches (dans l'ordre de numérotation), taper :
show arrow Démos flèches.
set autoscale {<axes>{min|max}}
set noautoscale {<axes>{min|max}}
show autoscale
où <axes> est l'un des mots-clefs x, y, z, x2, y2 ou xy. L'ajout de min ou max au mot-clef (sauf pour xy) indique à gnuplot d'ajuster automatiquement seulement le minimum ou le maximum de l'axe. En l'absence de mot-clef, tous les axes sont en échelle automatique.
En échelle automatique, l'intervalle des axes est calculé automatiquement et l'axe dépendant (y pour plot et z pour splot) est automatiquement ajusté pour intégrer les valeurs prises par la fonction ou les données.
Si l'échelle automatique de l'axe dépendant (y ou z) est retirée, l'intervalle courant de y ou z est utilisé.
L'échelle automatique sur les variables indépendantes (x pour plot et x,y pour splot) permet d'ajuster les échelles pour intégrer toutes les données à tracer (dans le cas d'un fichier). S'il n'y a pas de fichiers de données, l'échelle automatique sur les variables indépendantes n'a aucun effet. Autrement dit, en l'absence de fichier de données, les fonctions seules n'affectent pas l'échelle des x (ou l'échelle des y pour le tracé de z = f(x,y)).
Veuillez vous référer à set xrange pour les compléments sur les intervalles de valeurs.
L'effet des échelles automatiques reste cohérent en mode paramétrique (voir set parametric). Néanmoins, il y a davantage de variables dépendantes et donc plus de contrôles sur les échelles des axes x, y et z. En mode paramétrique, les variables indépendantes par défaut sont t pour plot et u, v pour splot. autoscale en mode paramétrique contrôle donc tous les intervalles de valeurs (t, u, v, x, y et z) et permet donc un parfait ajustement automatique des échelles en x, y et z.
L'échelle automatique procède de la même façon en mode polaire qu'en mode paramétrique pour plot, à la différence que set dummy permet d'utiliser d'autres variables indépendantes que t (voir set dummy).
Si les seconds axes sont affichés sans avoir spécifié de tracé, alors les intervalles x2range et y2range prennent par défaut les valeurs xrange et yrange. Cette affectation se produit _avant_ que les intervalles xrange et yrange soient automatiquement arrondis au nombre entier de marques supérieur, ce qui peut donner des résultats inattendus.
Exemples :
Echelle automatique suivant l'axe y (les autres axes ne sont pas affectés) :
set autoscale y
Calage automatique du minimum sur l'axe y (le maximum sur l'axe y et les autres axes ne sont pas affectés) :
set autoscale ymin
Echelle automatique sur les axes x et y :
set autoscale xy
Echelle automatique sur tous les axes x, y, z, x2 et y2 :
set autoscale
Supprimer l'échelle automatique sur les axes x, y, z, x2 et y2 :
set noautoscale
Supprimer l'échelle automatique seulement sur l'axe z :
set noautoscale z
mode paramétrique [parametrique]
mode polaire [polaire]
En mode paramétrique (set parametric), l'intervalle xrange est traité comme l'intervalle yrange. C'est à dire que les axes x et y peuvent être automatiquement ajustés pour englober toutes les valeurs prises par la fonction paramétrique. Bien entendu, l'échelle automatique suivant l'axe des y est possible comme dans les autres modes. En l'absence d'échelle automatique sur l'axe x, c'est l'intervalle courant qui est utilisé.
Les données de fichiers sont tracées comme dans les autres modes. Néanmoins, il y a une différence pour les tracés mixtes de fonctions et de données : en mode non paramétrique avec l'échelle automatique sur x, c'est l'intervalle des valeurs prises par les données du fichier qui contrôle l'intervalle des valeurs des fonctions ; en mode paramétrique ça n'a pas d'influence.
Pour être complet, l'échelle automatique set autoscale t est disponible. Cependant l'effet de cette échelle automatique est négligeable. Quand gnuplot calcule que l'intervalle t est nul, alors il fait un petit ajustement si l'échelle automatique est activée. Autrement, gnuplot affiche un message d'erreur. Cette particularité n'est pas vraiment utile et la commande set autoscale t est certainement à revoir.
splot, comme prévisible, étend le comportement précédent en 3D. Si l'échelle automatique est activée, alors les intervalles en x, y et z sont calculés pour englober toutes les valeurs.
En mode polaire (set polar), les intervalles xrange et yrange sont calculés à partir des coordonnées polaires, et donc sont automatiquement ajustés. Autrement dit, en mode polaire les intervalles en x et y peuvent être automatiquement ajustés pour contenir les valeurs prises par la fonction polaire.
Lors de tracé de fonctions en mode polaire, l'intervalle rrange peut être ajusté automatiquement. Lors de tracé de fichiers de données en mode polaire l'intervalle trange peut aussi être ajusté automatiquement. Il est à noter que si l'intervalle trange est contenu dans un seul quadrant, l'échelle automatique produit le graphe dans ce seul quadrant.
La définition d'un ou deux des intervalles et pas des autres peut donner des résulats inattendus. Voir démos polaires
La commande set bar contrôle les marques aux extrêmités des barres d'erreurs.
set bar {small | large | <taille>}
show bar
small est synonyme de 0.0, et large de 1.0. Par défaut c'est 1.0 si <taille> n'est pas précisée.
La commande set bmargin fixe la taille de la marge inférieure. Veuillez vous référer à set margin pour les details.
Les commandes set border et set noborder contrôlent l'affichage des bords du graphes pour les commandes plot et splot.
Syntaxe :
set border {<code-bord> { {linestyle | ls <style_ligne>}
| {linetype | lt <type_ligne> }
{linewidth | lw <largeur_ligne>} } }
set noborder
show border
bords (plot) splot splot
Côté base (splot) verticales sommet
bas (sud) 1 16 256
gauche (ouest) 2 32 512
haut (nord) 4 64 1024
droite (est) 8 128 2048
<code-bord> est un entier qui indique quels bords sont affectés. La valeur par défaut est 31, qui indique les 4 côtés pour plot, et la base et l'axe z pour splot.
Les options <style_ligne>, <type_ligne> et <largeur_ligne> influencent le tracé des bordures (limité par les pilotes du terminal utilisé). Par défaut, la bordure est tracée avec une largeur double de la largeur usuelle. La <largeur_ligne> multiplie cette valeur ; par exemple, set border 15 lw 2 produit une bordure de 4 fois la largeur usuelle.
Une grande variété d'axes ou de combinaison d'axes peut être ajouté à à la commande.
Pour obtenir des marques sur les bords ailleurs qu'en bas et à gauche, désactiver les marques habituelles et activer les axes secondaires (x2, y2).
Exemples :
Tracer toutes les bordures :
set border
Tracer seulement les bordures SUD-OUEST :
set border 3
Tracer une boîte complète autour d'un splot :
set border 4095
Tracer partiellement une boîte sans la face avant verticale :
set border 127+256+512
Tracer seulement les bordures NORD-EST :
set noxtics; set noytics; set x2tics; set y2tics; set border 12
La commande set boxwidth est utilisée pour fixer la largeur des boîtes pour les styles boxes et boxerrorbars.
Syntaxe:
set boxwidth {<largeur>}
show boxwidth
Si des fichiers de données sont tracés sans que les largeurs soient précisées dans la troisième, quatrième ou cinquième colonne (ou avec le mot-clef using), ou si une fonction est tracée, la largeur est alors fixée par la commande set boxwidth. (Si la largeur est spécifiée à la fois dans le fichier de données et par la commande set boxwidth, c'est la valeur du fichier qui prime). Si la largeur n'est spécifiée nulle part, la largeur de chaque boîte est calculée automatiquement de façon à ce qu'elles touchent les boîtes adjacentes. Dans un ensemble de données sur quatre colonnes, la quatrième colonne est interprétée comme largeur de boîte à moins que la largeur soit fixée à -2.0, dans ce cas la largeur est calculée automatiquement. Voir set style boxerrorbars pour plus de détails.
Pour obtenir le calcul automatique de largeur utilisez la commande :
set boxwidth
ou, pour des données sur quatre colonnes :
set boxwidth -2
Le même effet peut être obtenu avec le mot-clef using dans plot :
plot 'file' using 1:2:3:4:(-2)
gnuplot change de type de ligne à chaque niveau de contour quand clabel est utilisé. Sinon, tous les niveaux de contours sont de même style. Quand l'option est active (elle l'est par défaut), une légende donne les styles de ligne utilisés par niveau z. Il n'est pas possible actuellement de séparer les étiquettes de contour de la légende de la surface.
Syntaxe:
set clabel {'<format>'}
set noclabel
show clabel
Le format par défaut est %8.3g, soit trois décimales. Les étiquettes peuvent se trouver mal alignées si on modifie la configuration par défaut.
Le premier type de ligne de contour (le seul quand clabel est désactivé) est le type de ligne de surface +1. Les points de contour ont le même style que les points de surface.
Voir aussi set contour.
set clip <clip-type>
set noclip <clip-type>
show clip
Trois types de traitement sont prévus dans gnuplot : points, one, et two. Un, deux ou les trois types de traitement peuvent être actifs sur le même graphe.
Le traitement de type points force gnuplot à rogner (i.e. aucun tracé) Les points de données qui sont dans le graphe mais trop près de la bordure. C'est calculé de sorte que les gros symboles qui représentent les points ne sortent pas des limites. Sans découpe près des bordures, les tracés peuvent être "sales". L'ajustement des axes x et y peut donner des résultats similaires.
Le type de traitement one force gnuplot à tracer les segments de lignes qui ont seulement une de leurs deux extrémités dans le graphe. Seule la portion de ligne qui est à l'intérieur du graphe est tracée. L'alternative est de ne rien tracer des segments qui ont une extrémité hors du graphe.
Certaines lignes ont leur deux extrémités hors du graphe mais passent dedans. Le choix du type d'ajustement two permet le tracé de la partie visible de ces lignes.
En aucun cas une ligne ne peut être tracée hors du graphe.
Par défaut les options sont noclip points, clip one, et noclip two.
Pour connaître les options actives, utilisez
show clip
Pour garder une compatibilité descendante avec les versions précédentes, les formes suivantes sont admises :
set clip
set noclip
set clip est synonyme de set clip points ; set noclip désactive les trois types de traitement.
set cntrparam contrôle la génération de contours et leur lissage pour un tracé. show contour affiche l'état courant de cntrparam et de contour.
Syntaxe :
set cntrparam { {linear | cubicspline | bspline}
{ points <n>} { order <n> }
{ levels auto {<n>} | <n>
| discrete <z1> {,<z2>{,<z3>...}}
| incremental <debut>, <incr> {,<fin>}
}
}
show contour
Cette commande a deux fonctions. Premièrement, elle permet de préciser les valeurs de z pour lesquelles les contours vont être calculés (par interpolation linéaire entre les données -pour un fichier de données- ou entre les points échantillonnés -pour une fonction ; voir set isosamples-). Deuxièmement, elle permet de contrôler la manière de tracer ces contours. <n> doit être une expression entière constante et <z1>, <z2>... n'importe quelle expression constante.
Les paramètres sont :
linear, cubicspline, bspline : contrôle les types d'approximations ou d'interpolation. Pour linear, ce sont des segments de droites qui joignent les points de même z. Pour cubicspline, ce sont des portions de contours curvilignes qui sont interpolées entre les points de même valeur de z pour former des contours plus lisses, mais qui peuvent onduler. Pour bspline, un tracé curviligne de meilleur lissage est tracé, qui approxime seulement les points de même z.
points : option qui réalise tous les tracés curvilignes par morceaux. Ce nombre contrôle le nombre de segments curvilignes utilisés pour approximer les tracés bspline ou cubicspline. Nombre de segments curvilignes cubicspline ou bspline = points * nombre de segments linéaires.
order : ordre de l'approximation bspline utilisée. Plus l'ordre est grand, plus le contour résultant est lisse (bien évidemment, les ordres les plus élevés s'écartent d'autant plus des points de données à l'origine du calcul). Cette option ne concerne que le mode bspline. Les valeurs permises sont les valeurs entières qui vont de la valeur 2 (linéaire) à 10.
levels : choix des niveaux de contour, contrôlé par auto (valeur par defaut), discrete, incremental, et <n>, nombre de niveaux de contour, limité à MAX_DISCRETE_LEVELS fixé dans plot.h (30 en standard).
Pour auto, <n> spécifie un nombre nominal de niveaux ; le nombre choisi est ajusté pour donner des étiquettes simples. Si la surface est bornée par zmin et zmax, les contours sont générés aux multiples entiers de dz entre zmin et zmax, où dz vaut (1, 2, ou 5) fois une puissance de dix (comme les pas entre les graduations d'axes).
Pour levels discrete, des contours sont générés à z = <z1>, <z2> ... comme spécifié ; le nombre de niveaux discrets fixe le nombre de niveaux de contour. Le mode discrete inhibe l'option set cntrparms levels <n>.
Pour incremental, les contours sont générés à partir de la valeur <debut> de z, par pas de <incr>, jusqu'à ce que le nombre de contours soit atteint. <fin> est utilisé pour déterminer le nombre de niveaux de contour, qui peut être changé par n'importe quelle nouveau set cntrparam levels <n>.
Si la commande set cntrparam est passée sans paramètres, les valeurs par défaut sont appliquées : linear, 5 points, order 4, 5 auto levels.
Exemples :
set cntrparam bspline
set cntrparam points 7
set cntrparam order 10
Pour obtenir 5 niveaux automatiquement, sous réserve de respecter les critères d'incrémentation des niveaux :
set cntrparam levels auto 5
Pour obtenir des niveaux discrets à 0.1, 0.37, et 0.9 :
set cntrparam levels discrete .1,1/exp(1),.9
Pour obtenir des niveaux de 0 à 4 avec un incrément de 1 :
set cntrparam levels incremental 0,1,4
Pour passer le nombre de niveaux à 10 (dans le but de changer le niveau de <fin>, ou le nombre de niveaux automatiques) :
set cntrparam levels 10
Pour fixer le début et l'incrément tout en conservant le nombre de niveaux :
set cntrparam levels incremental 100,50
Voir aussi set contour pour le contrôle du positionnement des tracés de contour, et set clabel pour le contrôle du format, des étiquettes et des types de ligne de contour. Démo Contours et Niveaux de contours définis par l'utilisateur
set contour active le tracé de contours de surfaces. Cette option n'est valable qu'avec splot.
Syntaxe :
set contour {base | surface | both}
set nocontour
show contour
Les trois options déterminent le tracé des contours : base trace les contours sur la grille où sont placées les graduations x/y, surface trace les contours à même les surfaces, et both trace les contours à la fois sur la base et la surface. En l'absence d'option, base est pris par défaut.
Voir aussi set cntrparam pour les paramètres qui affectent le tracé des contours et set clabel pour l'étiquetage des contours.
L'option surface peut-être inhibée (voir set surface), donnant un graphe de contour seul. Bien qu'il soit possible d'utiliser set size pour ajuster le tracé à la taille de l'écran, un contrôle plus efficace peut être obtenu sur le format de sortie en écrivant l'information de contour dans un fichier et en le relisant comme un tracé bidimensionnel :
set nosurface
set contour
set cntrparam ...
set term table
set out 'fichier'
splot ...
set out
# les informations de contour sont maintenant dans le fichier 'fichier'
set term <whatever>
plot 'fichier'
Pour tracer des contours, les données doivent être organisées en grille de données. Dans un tel fichier tous les points de chaque ligne iso-y doivent être listés, puis les points de la ligne iso-y suivante et ainsi de suite. Une ligne vide unique (qui ne contient que des caractères espace, entrée et/ou ligne suivante) sépare les lignes iso-y les unes des autres. Voir aussi splot fichier.
Si les contours sont construits à partir de données qui ne suivent pas le format grille, l'option set dgrid3d permet de créer les grilles appropriées. Voir set dgrid3d pour plus de précisions. Démo Contours et Niveaux de contours définis par l'utilisateur
La commande set data style modifie les styles de tracé pour les tracés de données.
set data style <choix-style>
show data style
Voir set style pour les choix. En l'absence de choix, les possibilités sont affichées. show data style affiche le style de tracé courant.
set dgrid3d {<taille_ligne>} {,{<taille_col>} {,<norme>}}
set nodgrid3d
show dgrid3d
L'option dgrid3d est un simple filtre passe-bas qui convertit des données dispersées en ensemble de données alignées sur une grille. Des approches plus sophistiquées du problèmes existent et doivent être éventuellement appliquées avant tout traçage par gnuplot si cette solution simple ne convient pas.
[Les valeurs de z sont obtenues par pondération de tous les points de données, et non par interpolation de points les plus proches ; aussi des effets de bord peuvent produire des résultats inattendus ou indésirables. Dans certains cas, une valeur trop faible de <norme> produit un point de grille qui reflète la moyenne des points lointains et non pas la moyenne locale, tandis que des valeurs trop fortes de <norme> peuvent produire des effets d'escalier, avec plusieurs points ayant la même valeur que les points de données les plus proches, au lieu de produire une transition lisse entre points de données adjacents. Certaines régions de la grille peuvent être complétées par extrapolation, à une condition arbitraire aux limites. Les variables ne sont pas normalisées ; en conséquence, les unités utilisées en x et y sont affectées par la pondération des points dans les directions x et y.]
Exemples :
set dgrid3d 10,10,1 # valeurs par défaut
set dgrid3d ,,4
Le premier spécifie une grille 10x10 utilisant la valeur 1 pour <norme>. Le second modifie seulement la valeur de <norme> et la fait passer à 4. Démo dgrid3d.
La commande set dummy change le nom des variables muettes.
set dummy {<dummy-var>} {,<dummy-var>}
show dummy
Par défaut, gnuplot suppose que les variables indépendantes, ou muettes, pour la commande plot sont "t" en coordonnées paramétriques ou polaires, et "x" sinon. De la même façon les variables indépendantes pour la commande splot sont "u" et "v" en mode paramétrique (splot ne peut pas être utilisé en mode polaire), ou "x" et "y" autrement.
Il est souvent plus judicieux d'appeler les variables muettes par le nom de des variables physiques qu'elles sont censées représenter. Par exemple, pour le tracé de fonctions du temps :
set dummy t
plot sin(t), cos(t)
Au moins une variable muette doit être renommée quand on utilise la commande ; set dummy tout seul provoque un message d'erreur.
Exemples :
set dummy u,v
set dummy ,s
Le deuxième exemple change le nom de la seconde variable en s.
set encoding {<valeur>}
show encoding
Le formatage des étiquettes de graduations peut être réglé par la commande set format.
set format {<axes>} {"<format-chaîne>"}
set format {<axes>} {'<format-chaîne>'}
show format
où <axes> est x, y, z, xy, x2, y2 ou rien (qui est synonyme de xy). La longueur des chaînes de caractères étiquetant une graduation (après formatage avec 'printf') est limitée à 100 caractères. Si le format de chaîne est omis, il est fixé par défaut à "%g". Pour les utilisateurs de LaTeX, le format "$%g$" est souvent adapté. Si la chaîne vide "" est passée, aucune étiquette n'est tracée à chaque graduation ; néanmoins, les graduations sont encore tracées. Pour éliminer toutes les graduations, utiliser set noxtics ou set noytics.
Le caractère "nouvelle ligne" (\n) est accepté dans les chaînes de formatage. Utiliser les guillemets doubles plutôt que les simples pour obtenir l'effet désiré. Voir aussi syntax.
Le format par défaut pour les deux axes est "%g", mais d'autres formats comme "%.2f" ou "%3.0em" sont souvent préférables. Tout ce qui est accepté par 'printf' pour ce qui est des nombres en double précision, et qui est accepté par le terminal, fonctionne. Quand le format de chaîne ressemble à un format à virgule flottante, gnuplot essaye de proposer un format raisonnable.
Les caractères non précédés par "%" sont affichés littéralement. Ainsi, il est possible d'inclure des unités et des étiquettes dans les chaînes de format, comme"%g m", qui affiche " m" après chaque nombre. Pour obtenir "%", il faut le doubler : "%g %%".
Voir aussi set xtics pour plus d'informations sur les étiquettes de graduation. Voir démo.
Spécificateurs de format [specif]
Spécificateurs de date/heure [date]
Les formats acceptables (en dehors du mode heure/date) sont :
Format Explication
%f notation virgule flottante
%e or %E notation exponentielle : "e" ou "E" avant l'exposant
%g or %G le plus court, entre %e (ou %E) et %f
%x or %X hexadécimal
%o or %O octal
%t mantisse de base 10
%l mantisse de base de l'échelle logarithmique courante
%s mantisse logarithmique courante ; notation scientifique
%T puissance de base 10
%L puissance de base de l'échelle logarithmique courante
%S notation scientifique
%c caractère de substitution pour la notation scientifique
%P multiple de pi
set format y "%t"; set ytics (5,10) # "5.0" et "1.0"
set format y "%s"; set ytics (500,1000) # "500" et "1.0"
set format y "+-12.3f"; set ytics(12345) # "+12345.000 "
set format y "%.2t*10^%+03T"; set ytic(12345)# "1.23*10^+04"
set format y "%s*10^{%S}"; set ytic(12345) # "12.345*10^{3}"
set format y "%s %cg"; set ytic(12345) # "12.345 kg"
set format y "%.0P pi"; set ytic(6.283185) # "2 pi"
set format y "%.0P%%"; set ytic(50) # "50%"
set log y 2; set format y '%l'; set ytics (1,2,3)
#affiche "1.0", "1.0" et "1.5" (car 3 = 1.5 * 2^1)
Si les données de l'axe sont de type heure/date, la chaîne de formatage doit contenir les codes valides pour la fonction 'strftime' (indépendamment de gnuplot, taper "man strftime"). Voir set timefmt pour la liste des codes de format d'entrée autorisés.
En mode date/heure, les formats acceptés sont :
Format Explication
%a nom abrégé du jour de la semaine
%A nom complet du jour de la semaine
%b or %h nom abrégé du mois
%B nom complet du mois
%d jour du mois, 1--31
%D format direct pour "%m/%d/%y"
%H or %k heure, 0--24
%I or %l heure, 0--12
%j jour de l'année, 1--366
%m mois, 1--12
%M minute, 0--60
%p "am" ou "pm" (i.e. matin ou après-midi)
%r format direct pour "%I:%M:%S %p"
%R format direct pour "%H:%M"
%S secondes, 0--60
%T format direct pour "%H:%M:%S"
%U semaine de l'année (les semaines commencent le Dimanche)
%w jour de la semaine, 0--6 (Dimanche = 0)
%W semaine de l'année (les semaines commencent le Lundi)
%y année, 0-99
%Y année sur 4 chiffres
Soit le texte "76/12/25 23:11:11". Alors
set format x # valeur par défaut "12/25/76" \n "23:11"
set format x "%A, %d %b %Y" # "Saturday, 25 Dec 1976"
set format x "%r %d" # "11:11:11 pm 12/25/76"
Soit le texte "98/07/06 05:04:03". Alors
set format x "%1y/%2m/%3d %01H:%02M:%03S" # "98/ 7/ 6 5:04:003"
La commande set function style change le style de trait par défaut pour le tracé des fonctions.
set function style <choix_style>
show function style
Voir set style pour les différents choix. Si aucun choix n'est donné, une liste est alors proposée. show function style montre le style de trait par défaut pour les tracés de fonctions.
show functions
Pour obtenir des informations sur la définition et l'usage des fonctions dans gnuplot, voir expressions. Splines comme fonctions définies par l'utilisateur. Usage des fonctions et des variables complexes pour une surface d'avion
La commande set grid permet de dessiner un quadrillage sous le tracé.
set grid {{no}{m}xaxe} {{no}{m}yaxe} {{no}{m}zaxe}
{{no}{m}x2axe} {{no}{m}y2axe}
{polaire {<angle>}}
{ {style_ligne <style_ligne_principal>}
| {type_ligne | lt <type_ligne_principal>}
{épaisseur_ligne | lw <épaisseur_ligne_principale>}
{ , {style_ligne | ls <style_ligne_secondaire>}
| {type_ligne | lt <type_ligne_secondaire>}
{épaisseur_ligne | lw <épaisseur_ligne_secondaire>} } }
set nogrid
show grid
De plus, un quadrillage polaire peut être sélectionné pour un tracé 2D : les cercles sont tracés de façon à couper les axes sélectionnés, et les lignes radiales sont dessinées aux intervalles définis. (l'intervalle est défini en degré ou en radians, selon le mode de set angles.) Remarquer que la grille polaire n'est plus générée d'office en mode polaire.
Les graduations pertinentes doivent être réglées avant que set grid ne puisse les afficher; gnuplot ignorera simplement les instructions de tracé de quadrillage s'il n'y a pas de graduations, mais il apparaîtra si les graduations sont définies ultérieurement.
Si aucun type de tracé n'est spécifié pour le quadrillage secondaire, le même type de ligne que pour le quadrillage principal sera utilisé. L'angle polaire par défaut est 30 degrés.
Par défaut, les lignes du quadrillage sont de largeur moitié de la largeur usuelle. Les spécification de largeur de lignes principale et secondaire multiplient cette valeur par défaut ; par exemple, set grid lw .5 tracera des lignes d'un quart de la largeur usuelle.
Les lignes du quadrillage suivant l'axe Z sont tracées en arrière plan. On obtient un meilleur rendu si une boîte est dessinée autour du graphe ; voir set border.
La commande set hidden3d autorise la suppression des lignes cachées dans les tracés de surface (voir splot). Quelques options de l'algorithme sous-jacent peuvent aussi être contrôlées en utilisant cette commande.
Syntaxe :
set hidden3d {defaults} |
{ {{offset <offset>} | {nooffset}}
{trianglepattern <bitpattern>}
{{undefined <level>} | {noundefined}}
{{no}altdiagonal}
{{no}bentover} }
set nohidden3d
show hidden3d
Contrairement à l'affichage habituel de gnuplot, la suppression des lignes cachées considère en fait les grilles représentatives de fonctions ou de données comme des surfaces réelles opaques ; ainsi les parties derrière la surface seront cachées par elle. Pour que cela soit possible, la surface a besoin d'avoir une structure en grille (voir à ce propos splot fichier), et doit être représentée avec des courbes (with lines) ou des points reliés par des courbes (with linespoints).
Quand hidden3d est activé, à la fois le morceau caché de surface et son contour dessiné sur la base (voir set contour) ainsi que le quadrillage seront cachés. Chaque surface a sa partie cachée, soit par elle-même, soit par d'autres surfaces dans le cas où plusieurs surfaces sont représentées, qui est effacée. Le tracé de contour sur la surface (set contour surface) ne fonctionne plus. Les étiquettes et les flèches sont toujours visibles et non altérées. La légende n'est jamais cachée par la surface.
Les fonctions sont évaluées à l'intersection des isocourbes. L'algorithme fait une interpolation linéaire entre les points de la fonction ou les points de données quand il détermine la partie visible des segments. Cela signifie que l'apparence de la fonction peut être différente quand elle est représentée avec hidden3d plutôt qu'avec nohidden3d car dans ce dernier cas, la fonction est évaluée sur chaque pas de discrétisation. Voir set samples et set isosamples pour une explication de la différence.
L'algorithme utilisé pour supprimer les parties cachées des surfaces possède quelques caractéristiques supplémentaires contrôlables par cette commande. En spécifiant defaults, ces caractéristiques seront initialisées par défaut comme expliqué ci-dessous. Si defaults n'est pas spécifié, seules quelques options explicitement spécifiées seront influencées : toutes les autres garderont les valeurs précédentes, ainsi vous pouvez activer ou désactiver la suppression des lignes cachées par set {no}hidden3d, sans modifier l'ensemble des options que vous aviez choisies.
La première option, offset, indique le style de courbe utilisé pour les courbes de la face arrière. Normalement, elles sont tracées avec un style de ligne qui a un index immédiatement supérieur à celui des lignes de la face avant afin de distinguer ces deux faces. Vous pouvez ajouter un décalage différent de 1 par offset <offset>. L'option nooffset est équivalente à offset 0 et conduit à utiliser le même style de ligne pour les deux faces.
Ensuite vient l'option trianglepattern <bitpattern>. <bitpattern> doit être un nombre compris entre 0 et 7, interprété comme un nombre de motif. Chaque nombre détermine la visibilité des cotés des triangles qui constituent la surface. Le bit 0 correspond au coté 'horizontal' de la grille (x constant), le bit 1 au coté vertical (y constant) et le bit 2 à la diagonale qui coupe chaque cellule de la grille horizontale en deux triangles. Le motif par défaut est 3='011', qui rend les courbes horizontales et verticales visibles mais pas les diagonales. Vous devez choisir 7='111' pour voir aussi les diagonales.
L'option undefined <level> vous permet de décider quel algorithme appliquer aux points de données qui sont indéfinis (manque de donnée ou valeur de la fonction indéfinie), ou qui dépassent les intervalles en x, y ou z. De tels points peuvent néanmoins être tracés, ou enlevés de l'ensemble des données. Tous les éléments de surface touchant un point qui a été enlevés du jeu de données seront effacés créant ainsi un trou dans la surface. Si <level> = 3, ce qui est équivalent à l'option noundefined, aucun point ne sera retiré. Ceci peut conduire à toutes sortes de problèmes, vous devriez donc l'éviter. <level> = 2 retirera les points non définis mais pas ceux hors des intervalles. <level> = 1, le niveau par défaut, vous débarrassera aussi des points hors intervalles.
En spécifiant noaltdiagonal, vous pouvez annuler la manipulation par défaut pouvant apparaître lors de cas particuliers, lorsque undefined est activé (i.e. <level> différent de 3). Chaque cellule de la grille structurée représentant la surface sera divisée en deux triangles le long d'une diagonale. Normalement, toutes les diagonales ont la même orientation relativement à la grille. Si exactement un des quatre coins d'une cellule est exclu par le champ undefined, et que celui ci est sur la diagonale, les deux triangles seront exclus. Cependant altdiagonal est activé (comportement par défaut), l'autre diagonale sera choisie pour la cellule, réduisant ainsi la taille des trous dans la surface.
L'option bentover contrôle ce qui arrive dans un autre cas particulier, cette fois en relation avec trianglepattern. Pour des surfaces relativement froissées, il peut arriver que deux triangles divisant une cellule de la surface soient vus sur deux faces opposées (i.e. le quadrangle original est torsadé ('bent over'), comme illustré dans la figure ci-dessous :
C----B
quadrangle original : A--B quadrangle représenté : |\ |
("set view 0,0") | /| ("set view 75,75" par ex.) | \ |
|/ | | \ |
C--D | \|
A D
Si le côté diagonal des cellules de la surface n'est pas explicitement rendu visible par le bit 2 du <bitpattern>, le coté CB ci-dessus ne sera pas dessiné du tout, rendant la représentation difficile à comprendre. Cependant, l'option par défaut de bentover le rendra visible dans ce cas. Si vous ne le voulez pas, vous pouvez choisir nobentover à la place. Hidden Line Removal Demo and Complex Hidden Line Demo.
set isosamples <iso_1> {,<iso_2>}
show isosamples
Quand un tracé de fonction représentant une surface est fait sans suppression des lignes cachées, set samples spécifie le nombre de point échantillonnés le long de chaque iso-courbe ; voir set samples et set hidden3d. L'algorithme de contour suppose qu'un échantillonnage de la fonction est fait à chaque intersection des iso-courbes, ainsi une modification de samples aussi bien que de isosamples peut être nécessaire quand on change la résolution d'un tracé de surface ou d'un contour.
La commande set key permet d'avoir une légende décrivant le tracé.
Le contenu de la légende, i.e. le nom donné à chaque fonction ou jeu de données tracé, les échantillons de styles des traits et/ou des symboles utilisés pour les représenter, sont déterminés par les options title et with des commandes plot et splot. Reportez-vous à plot title et plot with pour plus d'informations.
Syntaxe :
set key { left | right | top | bottom | outside | below
| <position>}
{Left | Right} {{no}reverse}
{samplen <long_ech>} {spacing <esp_vert>}
{width <incr_larg>}
{title "<texte>"}
{{no}box { {linestyle | ls <line_style>}
| {linetype | lt <line_type>}
{linewidth | lw <line_width>}}}
set nokey
show key
Par défaut, la légende est placée dans le coin supérieur droit du graphe. Les mots-clés left (à gauche), right (à droite), top (en haut), bottom (en bas), outside (en dehors) et below (au dessous) peuvent être utilisés pour placer la légende dans d'autres coins à l'intérieur du graphe ou sur la droite (outside) ou en dessous (bellow) du graphe. Ces mots-clés peuvent être seuls ou combinés.
L'alignement des étiquettes à l'intérieur de la légende est contrôlé par Left (à gauche) ou Right (à droite), l'alignement par défaut étant Right. Le texte et l'échantillon de tracé peuvent être permutés (reverse) et un cadre peut être tracé autour de la légende (box {...}) dans un type de ligne spécifié linetype et une épaisseur de ligne linewidth, ou un style de ligne linestyle défini par l'utilisateur. Notez que tous les pilotes de terminal ne supportent pas la sélection de l'épaisseur de ligne.
La longueur de l'échantillon de courbe peut être ajustée avec samplen. La longueur de l'échantillon est calculée comme la somme de la longueur d'une graduation et de <long_ech> multiplié par la largeur d'un caractère. samplen affecte aussi la position des points (si la fonction est représentée avec des points) dans la légende car ces points sont tracés au milieu de l'échantillon de ligne même lorsque celui-ci n'est pas représenté. <long_ech> doit être un entier.
L'espacement vertical entre les échantillons de courbe est contrôlé par spacing. L'espacement est égal au produit de la taille des points, la taille des graduations verticales, et de <esp_vert>. Le logiciel garantit que l'espacement vertical ne sera pas inférieur à la hauteur des caractères.
L'argument <incr_larg> est un nombre de de caractères à ajouter ou à soustraire de la longueur de la chaîne de caractères pour le calcul de la largeur. C'est utile dans le cas où on ajoute un cadre autour de la légende et qu'on utilise des caractères de contrôle dans le texte. gnuplot compte simplement le nombre de caractère de la chaîne pour calculer la largeur du cadre ; ceci vous autorise à faire des corrections.
Un titre peut être placé sur la légende (title "<texte>") ; voir aussi syntax pour faire la distinction entre un texte entre apostrophes et entre guillemets. Le titre de la légende utilise le même alignement que le titre du graphe.
Les paramètres par défaut pour set key sont right, top, Right, noreverse, samplen 4, spacing 1.25, title "", et nobox. Le type de courbe par défaut est le même que celui utilisé pour le tracé du cadre. En entrant set key sans options, on obtient une légende configurée par défaut.
La <position> peut être un simple x,y,z comme dans les versions précédentes, mais ils peuvent être précédés par un des quatre mots-clés (first, second, graph, screen) qui sélectionne le système de coordonnées dans lequel la position est spécifiée. Voir help coordonnees pour plus de détails.
La légende est représentée comme une suite de lignes, chacune décrivant une courbe. Sur la droite (ou sur la gauche si reverse est activé) de chaque ligne, il y a un dessin censé représenter le style de tracé de la courbe. De l'autre coté de chaque ligne, il y a un texte de description (le titre de la courbe), obtenu d'après la commande plot. Les lignes sont justifiées verticalement de façon à ce qu'une ligne imaginaire sépare les côtés droit et gauche de la légende. C'est les coordonnées du haut de cette ligne imaginaire qui sont spécifiées avec la commande set key. Dans un tracé plot, seules les coordonnées x et y sont utilisées pour spécifier la position de cette ligne. Dans un tracé splot, x, y et z sont toutes utilisées comme repérage de la position 3D en utilisant le même repérage que celui du graphe pour indiquer la position 2D sur l'écran de cette ligne imaginaire.
Certaines ou toutes les légendes peuvent être en dehors des frontières du graphe bien que ceci puisse interférer avec d'autres étiquettes et puisse provoquer des erreurs sur certains pilotes. Si vous utilisez les mots-clés outside ou below, gnuplot réserve de l'espace pour la légende et le graphe devient plus petit. En mettant la légende extérieure à droite, elle occupe le moins de colonnes possible et en la mettant en dessous, elle occupe autant de colonnes que possible (dépendant de la longueur des étiquettes), empiétant ainsi au minimum sur l'espace réservé au graphe.
Quand on utilise TeX ou PostScript comme pilote, ou des pilotes similaires nécessitant l'inclusion de directives de formattage dans les chaînes, gnuplot est incapable de calculer correctement la largeur de la chaîne pour placer la légende. Si la légende doit être placée à gauche, il peut être pratique d'utiliser la combinaison set key left Left reverse. Le cadre et le trou dans le quadrillage auront la largeur de la chaîne réelle.
Si splot est utilisé pour le tracé des contours, les étiquettes des contours seront représentées dans la légende. Si l'alignement de ces étiquettes est médiocre ou si un nombre différent de décimales est désiré, le format des étiquettes peut être spécifié. Voir set clabel pour des détails.
Exemples :
Ceci produit une légende avec les attributs par défaut :
set key
Ceci supprime la légende :
set nokey
Ceci place une légende au point de coordonnée 2, 3.5, 2 dans le système de coordonnées par défaut (le premier) :
set key 2,3.5,2
Ceci place la légende au dessous du graphe :
set key below
Ceci place la légende dans le coin inférieur gauche, aligne le texte sur la gauche, donne un titre et trace un cadre de type de ligne 3 :
set key left bottom Left title 'Légende' box 3
N'importe quelle étiquette peut être placée sur le dessin en utilisant la commande set label.
set label {<référence>} {"<texte_étiquette>"} {at <position>}
{<justification>} {{no}rotate} {font "<nom><,taille>"}
set nolabel {<référence>}
show label
La position est spécifiée soit par x, y soit par x, y, z et peut être précédée de first, second, graph, ou screen pour sélectionner le système de coordonnées. Voir coordinates pour des détails.
La référence est un entier utilisée pour identifier l'étiquette. Si aucune <référence> n'est donnée, la plus petite référence non utilisée est automatiquement assignée. La référence peut être utilisée pour détruire ou modifier une étiquette spécifique. Pour changer un attribut d'une étiquette existante, utilisez la commande set label avec la référence appropriée, et indiquez la partie de l'étiquette à modifier.
Par défaut, le texte est placé à gauche du point x,y,z. Pour modifier la façon dont l'étiquette est positionnée par rapport au point x,y,z, ajouter le paramètre <justification>, qui peut être left (à gauche), right (à droite) ou center (centrée), indiquant que le point doit être à gauche, à droite ou au centre du texte. Les étiquettes en dehors des frontières du tracé sont permises mais peuvent interférer avec les étiquettes des axes ou d'autres textes.
Si rotate est spécifié, l'étiquette est affichée verticalement (si le terminal le permet bien sûr).
Si un (ou plusieurs) axe représente des données temporelles, les coordonnées appropriées doivent être données comme des chaînes de temps entre guillemets suivant le format de chaîne timefmt. Voir set xdata et set timefmt.
Les pilotes EEPIC, Imagen, LaTeX, et TPIC admettent "\\" dans une chaîne pour indiquer un passage à la ligne.
Exemples :
Pour positionner une étiquette "y=x" en (1,2), utilisez :
set label "y=x" at 1,2
Pour mettre un Sigma de taille 24, de la police Symbol, au centre du graphe, utilisez :
set label "S" at graph 0.5,0.5 center font "Symbol,24"
Pour mettre une étiquette "y=x^2" dont la droite du texte serait en (2,3,4), et avec une référence égale à 3, utilisez :
set label 3 "y=x^2" at 2,3,4 right
Pour changer l'étiquette précédente afin de centrer le texte, utilisez :
set label 3 center
Pour supprimer l'étiquette numéro 2, utilisez :
set nolabel 2
Pour détruire toutes les étiquettes, utilisez :
set nolabel
Pour montrer toutes les étiquettes (par ordre de référence), utilisez :
show label
Pour mettre une étiquette sur le graphe avec des données temporelles sur l'axe x, utilisez par exemple :
set timefmt "%d/%m/%y,%H:%M"
set label "Harvest" at "25/8/93",1
Chaque terminal a, par défaut, un ensemble de types de points et de lignes, qui peut être visualisé en utilisant la commande test. set linestyle permet de définir un ensemble de types et de largeurs de ligne ainsi qu'un ensemble de types et de tailles de point pour que vous puissiez vous y référer plus tard par un index au lieu de répéter à chaque invocation toutes les informations.
Syntaxe :
set linestyle <index> {linetype | lt <type_ligne>}
{linewidth | lw <largeur_ligne>}
{pointtype | pt <type_point>}
{pointsize | ps <taille_point>}
set nolinestyle
show linestyle
Les types de lignes et de points sont pris dans les types par défaut pour le terminal que vous utilisez. La largeur des lignes et la taille des points sont des multiples de la largeur et de la taille par défaut (mais remarquez que <taille_point> ici n'est pas affectée par le multiple donné par 'set pointsize').
Les types de lignes et de points par défaut sont ceux de l'index. Les largeur de ligne et taille de point sont à 1 par défaut.
Les styles de ligne créés par ce mécanisme ne remplacent pas les styles par défaut ; les deux peuvent être utilisés.
Tous les terminaux ne supportent pas les options linewidth et pointsize ; si elles ne sont pas supportées, elles seront ignorées.
Remarquez que ces options ne sont pas complètement implémentées ; les styles de ligne définis par ce mécanisme peuvent être utilisés avec 'plot', 'splot', 'replot', et 'set arrow', mais pas par d'autres commandes qui demandent à utiliser l'index par défaut, comme 'set grid'.
Exemple : Supposez que les lignes par défaut pour les indices 1, 2 et 3 soient rouge, verte et bleue et que les formes de points pour les mêmes indices soient un carré, une croix et un triangle. Alors
set linestyle 1 lt 2 lw 2 pt 3 ps 0.5
définit un nouveau style de ligne qui est vert et dont la largeur est le double de celle par défaut et un style de point qui est un triangle de taille réduite de moitié. Les commandes
set function style lines
plot f(x) lt 3, g(x) ls 1
créeront un tracé de f(x) en utilisant une ligne bleue par défaut et un tracé de g(x) utilisant la ligne verte et large définie par l'utilisateur. De même les commandes
set function style linespoints
plot p(x) lt 1 pt 3, q(x) ls 1
créeront un tracé de f(x) utilisant les triangles par défaut reliés par une ligne rouge et un tracé de q(x) avec des petits triangles reliés par une ligne verte.
La commande set lmargin fixe la taille de la marge de gauche. Reportez-vous à set margin pour plus de détails.
set locale {"<locale>"}
Une échelle logarithmique peut être employée sur les axes x, y, z, x2 et y2.
set logscale <axes> <base>
set nologscale <axes>
show logscale
Pour activer une échelle logarithmique sur les axes x et z :
set logscale xz
Pour activer une échelle logarithmique en base 2 sur l'axe y :
set logscale y 2
Pour désactiver une échelle logarithmique sur l'axe z :
set nologscale z
Si des données sont fournies à splot en coordonnées cylindriques ou sphériques, la commande set mapping doit indiquer à gnuplot comment les interpréter.
Syntaxe :
set mapping {cartesian | spherical | cylindrical}
Le système cartésien est utilisé par défaut.
Pour un système de coordonnées sphériques, les données occupent deux ou trois colonnes (ou des entrées using). Les deux premières sont l'angle polaire et l'azimut theta et phi (dans l'unité précisée par set angles). Le rayon r est pris dans la troisième colonne s'il y en a une, ou pris égal à 1 sinon. La représentation est :
x = r * cos(theta) * cos(phi)
y = r * sin(theta) * cos(phi)
z = r * sin(phi)
Notez que ceci est un système sphérique "géographique", plutôt que polaire.
Pour un système de coordonnées cylindriques, les données occupent aussi deux ou trois colonnes. Les deux premières sont interprétées comme theta (dans l'unité spécifiée par set angles) et z. Le rayon est de nouveau la troisième colonne ou fixé à 1 si celle-ci n'existe pas comme dans le cas des coordonnées sphériques. La représentation est :
x = r * cos(theta)
y = r * sin(theta)
z = z
Les effets d'une représentation mapping peuvent être pris en charge par le filtre using de la commande splot, mais la représentation mapping est plus pratique lorsque beaucoup de fichiers de données doivent être traités. Cependant, même lorsque mapping est utilisé, using est encore nécessaire si le fichier de données n'est pas bien ordonné.
mapping n'a aucun effet sur plot. Mapping Demos.
set bmargin {<margin>}
set lmargin {<margin>}
set rmargin {<margin>}
set tmargin {<margin>}
show margin
Les unités de <margin> sont les hauteurs et largeurs de caractères. Une valeur positive définit la taille absolue de la marge.Une valeur négative (ou aucune valeur) conduit gnuplot à revenir à la valeur calculée.
Normalement, les marges d'un tracé sont calculées automatiquement, à partir des graduations, des étiquettes de graduations, des étiquettes d'axes, du titre du tracé, de l'horodatage et de la taille de la légende, si elle est à l'extérieur du tracé. Malgé tout, si les graduations sont attachées aux axes (par set xtics axis par exemple), ni les graduations ni leurs étiquettes ne seront incluses dans le calcul des marges, ni dans celui de la position des autres textes à placer dans la marge. Cela peut aboutir à des étiquettes de graduations recouvrant d'autres textes si l'axe est trop près du bord.
La commande set missing vous permet de dire à gnuplot quel caractère est utilisé dans un fichier de données pour spécifier une donnée manquante.
Syntaxe :
set missing {"<caractère>"}
show missing
Exemple :
set missing "?"
veut dire, qu'un tracé du fichier contenant
1 1
2 ?
3 2
ignorera la ligne du milieu.
Il n'y a pas de caractère par défaut pour missing.
La commande set multiplot place gnuplot dans le mode des tracés multiples, où plusieurs tracés sont placés sur la même page, fenêtre, ou écran.
Syntaxe :
set multiplot
set nomultiplot
Pour quelques terminaux, aucun tracé n'est représenté jusqu'à ce que la commande set nomultiplot soit donnée, ce qui provoque l'affichage de la page entière puis ramène gnuplot dans son mode normal de tracé unique. Pour d'autres terminaux, chaque tracé (plot) distinct produit un tracé, mais l'écran n'est pas rafraîchit entre les tracés.
Toutes les étiquettes ou flèches qui ont été définies seront représentées sur chaque tracé selon la taille courante et l'origine (à moins que ses coordonnées ne soient définies dans le système écran screen). Tout ce qui peut être spécifié par la commande set sera représenté dans chaque tracé. Si vous voulez que quelque chose n'apparaisse qu'une fois sur la page, par exemple l'heure, vous devrez insérer la paire set time/set notime autour d'une des commandes plot, splot or replot à l'intérieur du bloc set multiplot/set nomultiplot.
Les commandes set origin et set size doivent être utilisées pour positionner correctement chaque tracé ; voir set origin et set size pour les détails concernant leur utilisation.
Exemple :
set size 0.7,0.7
set origin 0.1,0.1
set multiplot
set size 0.4,0.4
set origin 0.1,0.1
plot sin(x)
set size 0.2,0.2
set origin 0.5,0.5
plot cos(x)
set nomultiplot
affiche un tracé de cos(x) au dessus d'un tracé de sin(x). Remarquez les set size et set origin initiaux. Bien que ce ne soit pas toujours nécessaire, leur inclusion est recommandée. Quelques pilotes de terminal requièrent que les informations sur la boîte de contour (bounding box) soient disponibles avant qu'un tracé puisse être affiché, et la forme donnée ci-dessus garantit que la boîte de contour inclura l'ensemble des tracés plutôt que la boîte de contour du premier tracé.
set size et set origin font référence à la surface de tracé utilisée pour chaque tracé. Si vous voulez avoir des axes alignés, vous pouvez spécifier que les marges soient de la même taille avec la commande set margin. Voir set margin pour son utilisation. Remarquez que les marges sont absolues, que l'unité est le caractère, et que l'apparence du graphe dans l'espace restant dépendra de la taille de l'écran du périphérique d'affichage, certainement très différente sur un écran vidéo et sur une imprimante. See demo.
Les marques des graduations mineures le long de l'axe x2 (celui du haut) sont contrôlées par la commande set mx2tics. Voir set mxtics.
set mxtics {<freq> | default}
set nomxtics
show mxtics
La même syntaxe s'applique à mytics, mztics, mx2tics et my2tics.
<freq> est le nombre de sous-intervalles (PAS le nombre de graduations mineures) entre les graduations majeures (dix est la valeur par défaut pour une graduations linéaire, ainsi il y a neuf graduations mineures entre deux graduations majeures). En sélectionnant default, on obtiendra un nombre de graduations mineures égale à la valeur par défaut.
Si la graduation est logarithmique, le nombre de sous-intervalles sera fixé à un nombre raisonnable par défaut (basé sur la longueur d'une décade). Ceci sera annulé si <freq> est spécifié. Cependant les graduations mineures habituelles (2, 3, ...., 8, 9 entre 1 et 10, par exemple) sont obtenues en positionnant <freq> à 10, même s'il y a seulement neuf sous-intervalles.
Les graduations mineures peuvent être utilisées seulement avec des graduations majeures uniformément espacées. Comme les graduations majeures peuvent être placées arbitrairement avec la commande set {x|x2|y|y2|z}tics, les graduations mineures ne peuvent pas être utilisées si les graduations majeures sont explicitement spécifiées.
Par défaut, les graduations mineures sont désactivées pour les axes gradués linéairement et activées pour les axes gradués logarithmiquement. Elles héritent des paramètres axis|border et {no}mirror spécifiés pour les graduations principales. Voir set xtics pour des informations à ce propos.
Les marques de graduations mineures le long de l'axe y2 (celui de droite) sont contrôlées par la commande set my2tics. Voir set mxtics.
Les marques de graduations mineures le long de l'axe y sont contrôlées par la commande set mytics. Voir set mxtics.
Les marques de graduations mineures le long de l'axe z sont contrôlées par la commande set mztics. Voir set mxtics.
set offsets <gauche>, <droite>, <haut>, <bas>
set nooffsets
show offsets
Les retraits sont ignorés par splot.
Exemple :
set offsets 0, 0, 2, 2
plot sin(x)
Ce graphe de sin(x) aura un intervalle en y égal à [-3:3], car la fonction sera mise à l'échelle automatiquement sur [-1:1] et les retraits verticaux sont fixés à 2.
set origin <origine-x>,<origine-y>
set output {"<nomfichier>"}
show output
Quand set terminal et set output sont utilisés ensemble, il vaut mieux spécifier set terminal en premier, car certains terminaux positionnent un indicateur nécessaire pour certains systèmes d'exploitation. C'est le cas par exemple si le système doit savoir si un fichier est formaté ou pas avant de l'ouvrir.
Sur des systèmes utilisant des fonctions popen (Unix), la sortie peut être dirigée sur une commande shell par un tube (pipe) si le premier caractère non blanc du nom de fichier est un '|'. Par exemple,
set output "|lpr -Plaser fichier"
set output "|lp -dlaser fichier"
Sur les machines MSDOS, set output "PRN" dirigera la sortie vers l'imprimante par défaut. Sous VMS, la sortie peut être envoyée directement vers tout périphérique géré par une file d'attente. Il est aussi possible d'envoyer la sortie vers le systèmre de tâches transparentes DECnet, qui permet une certaine souplesse.
set parametric
set noparametric
show parametric
En 2D, un tracé paramétrique est déterminé par une paire de fonctions opérant sur un paramètre. Un exemple de tracé paramétrique pourrait être plot sin(t),cos(t), qui dessine un cercle (si le ratio d'aspect est correct, voir set size). gnuplot affichera un message d'erreur s'il n'y a pas exactement deux paramètres fournis à plot.
En 3D, une surface paramétrique est décrite par x=f(u,v), y=g(u,v), z=h(u,v). Un triplet de fonctions est donc nécessaire. Un exemple de tracé paramétrique serait cos(u)*cos(v),cos(u)*sin(v),sin(u), qui dessine un sphère. gnuplot affichera un message d'erreur s'il n'y a pas exactement trois paramètres fournis à splot.
Notez l'ordre des fonctions à respecter : fx, fy (et fz), et qui opèrent toutes sur le domaine paramétrique commun.
De plus, le mode paramétrique implique de nouveaux intervalles de valeurs. Alors que le mode normal de tracé f(x) et f(x,y) suppose des intervalles définis pour x, y et z, le mode paramétrique utilise en plus des intervalles pour t, u et v. Ces intervalles peuvent être réglés directement par les commandes set trange, set urange et set vrange, ou en précisant les intervalles dans les commandes plot et splot. L'intervalle par défaut pour ces variables paramétriques est [-5:5] mais il est généralement pertinent de le modifier.
La commande set pointsize règle la taille des points utilisés dans les tracés.
set pointsize <facteur>
show pointsize
La taille des points peut être changée pour un seul tracé dans la commande plot elle-même. Référez-vous à plot pour les détails.
Veuillez noter que le réglage de la taille des points n'est pas possible sur tous les types de terminaux.
set polar
set nopolar
show polar
Il y a eu des changements dans le mode polaire dans la version 3.7, de sorte que les scripts pour les versions 3.5 et antérieures de gnuplot doivent être modifiés. Le changement principal est que la variable muette utilisée pour l'angle est t, de sorte que les intervalles en x et y peuvent être contrôlés indépendamment. Voici les autres changements : 1) les graduations ne sont plus tracées automatiquement le long des axes ; utilisez set xtics axis nomirror; set ytics axis nomirror; 2) le quadrillage, s'il est sélectionné, n'est plus automatiquement polaire ; utilisez set grid polar; 3) le quadrillage n'est pas étiqueté avec les angles ; utilisez set label avec les paramètres convenables.
En coordonnées polaires, la variable muette (t) est un angle. L'intervalle par défaut pour t est [0:2*pi], ou, si les degrés ont été sélectionnés, [0:360] (voir set angles).
La commande set nopolar repasse dans le système par défaut de coordonnées rectangulaires.
La commande set polar n'est pas supportée par splot. Voir la commande set mapping pour des fonctionnalités similaires de splot. En coordonnées polaires, la signification d'une expression en t est exactement r=f(t), où t est l'angle de rotation. L'intervalle en t contrôle le domaine (l'angle) de la fonction, et les intervalles en x et y contrôlent les intervalles de tracé. Chacun de ces intervalles, ainsi que celui en r, peut être réglé automatiquement par gnuplot ou explicitement par l'utilisateur. Voir set xrange pour tous les détails sur les commandes set range.
Exemple :
set polar
plot t*sin(t)
plot [-2*pi:2*pi] [-3:3] [-3:3] t*sin(t)
Le premier plot utiliser le domaine angulaire polaire par défaut, de 0 à 2*pi. Le rayon et la taille du graphe sont réglés automatiquement. Le second plot augmente le domaine de définition et restreint la taille du graphe à [-3:3] dans les deux directions.
Vous voudrez peut-être utiliser la commande set size square pour dire à gnuplot de mettre le ration d'aspect à 1, afin que les cercles ressemblent à des cercles. Démonstrations du mode polaire Tracé de données polaires.
La commande set rmargin règle la taille de la marge droite. Veuillez vous référer à set margin pour les détails.
La commande set rrange règle l'intervalle des coordonnées radiales d'un graphe en mode polaire. Veuillez vous référer à set xrange pour les détails.
set samples <samples_1> {,<samples_2>}
show samples
Par défaut, l'échantillonnage est fixé à 100 points. Un taux d'échantillonnage plus élevé produira des tracés plus précis, mais nécessitant plus de temps. Ce paramètre est sans effet sur le tracé de données, à moins que les options d'interpolation/approximation ne soient utilisées. Voir plot smooth pour les données 2D et set cntrparam et set dgrid3d pour les données 3D.
Pour un tracé 2D, seule la valeur de <samples_1> est utile.
Quand un tracé de surface est effectué sans suppression des lignes cachées, la valeur de samples indique le nombre d'évaluations à faire pour chaque isocourbe. chaque courbe iso-v connectera <sample_1> échantillons et chaque iso-u connectera <sample_2> échantillons. Si vous spécifiez seulement <samples_1>, <samples_2> prendra la même valeur. Voir aussi set isosamples.
La commande set size règle la taille d'affichage du tracé.
set size {{no}square | ratio <r> | noratio} {<ech_x>,<ech_y>}
show size
ratio dit à gnuplot d'essayer de créer un graphe avec un ratio d'aspect <r> (la longueur de l'axe y sur la longueur de l'axe x) à l'intérieur de la portion de tracé spécifiée par <ech_x> et <ech_y>.
La signification d'une valeur de <r> négative est différente. Si <r>=-1, gnuplot essaie de régler les facteurs d'échelle de sorte que l'unité ait la même longueur sur les deux axes (intéressant pour les données géographiques, par exemple). Si <r>=-2, l'unité en y est deux fois plus longue que l'unité en x, etc.
La production effective d'un graphe respectant le ratio d'aspect demandé dépend du terminal sélectionné. L'aire de tracé sera le plus grand rectangle de ration d'aspect <r> qui rentre dans la portion spécifiée de sortie (en laissant des marges adéquates, bien sûr).
square est synonyme de ratio 1.
noratio et nosquare remettent le ratio d'aspect par défaut du terminal, mais ne remettent pas <ech_x> et <ech_y> à leur valeur par défaut (1.0).
ratio et square sont sans effet sur les tracés 3D.
set size est relatif à la taille par défaut, qui dépend du terminal. Comme gnuplot utilise par défaut la plus grande surface de tracé possible, il est plus sûr d'essayer de réduire la taille du tracé que de l'augmenter. Voir set terminal pour les tailles par défaut. Sur certains terminaux, un changement de la taille du tracé causera des problèmes dans l'emplacement du texte.
Exemples :
Pour (re)mettre la taille normale :
set size 1,1
Pour un graphe réduit de moitié (en dimension) et d'aspect carré :
set size square 0.5,0.5
Pour faire un graphe deux fois plus haut que large :
set size ratio 2
Les styles par défaut sont choisis avec les commandes set function style et set data style. Voir plot with pour des informations sur la façon de redéfinir le style de tracé par défaut pour des fonctions individuelles et des jeux de données.
Syntaxe :
set function style <style>
set data style <style>
show function style
show data style
Le type utilisé pour tous les styles de point et de ligne (i.e. continu, trait-point, couleur, etc. pour les lignes ; cercles, carrés, croix etc. pour les points) sera soit celui spécifié dans les commandes plot ou splot, soit celui choisi séquentiellement à partir des types auxquels le terminal utilisé a accès. Utiliser la commande test pour voir ce qui est disponible.
Aucun des styles requérant plus de deux colonnes d'informations (par exemple errorbars) ne peut être utilisé avec splot, ni avec plot pour les fonctions. Ni boxes ni aucun des styles steps ne peut être utilisé avec splot. Si un style inapproprié est spécifié, il est changé en points.
Pour des données 2D avec plus de deux colonnes, gnuplot est pointilleux sur les styles errorbar autorisés. L'option using de la commande plot peut être utilisée pour positionner les colonnes correctes pour le style que vous voulez. (Dans cette discussion, "colonne" sera utilisé pour parler à la fois d'une colonne du fichier de données et d'une entrée dans la liste using.)
Pour trois colonnes, seuls xerrorbars, yerrorbars (ou errorbars), boxes, et boxerrorbars sont autorisés. Si un autre style de tracé est utilisé, le style est changé en yerrorbars. Le style boxerrorbars calculera la largeur de boîte automatiquement.
Pour quatre colonnes, seuls xerrorbars, yerrorbars (ou errorbars), xyerrorbars, boxxyerrorbars, et boxerrorbars sont autorisés. Un style illégal est changé en yerrorbars.
Des données sur cinq colonnes autorisent seulement les styles boxerrorbars, financebars, et candlesticks. Les deux derniers sont utilisés essentiellement pour des graphes de prix financiers. Un style illégal est changé en boxerrorbars avant le tracé.
Des données sur six et sept colonnes autorisent seulement les styles xyerrorbars et boxxyerrorbars. Les styles illégaux sont changés en xyerrorbars avant le tracé.
Pour plus d'information sur les barres d'erreur, veuillez vous référer à plot errorbars.
boxerrorbars
boxes
boxxyerrorbars
candlesticks
dots
financebars
fsteps
histeps
impulses
lines
linespoints
points
steps
vector
xerrorbars
xyerrorbars
yerrorbars
Le style boxerrorbars est pertinent seulement pour le tracé de données 2D. C'est une combinaison des styles boxes et yerrorbars. La largeur de boîte viendra de la quatrième colonne si les erreurs sur y sont de la forme de "ydelta" et si la largeur de boîte n'a pas été précédemment posée égale à -2.0 (set boxwidth -2.0) ou de la cinquième colonne si les erreurs sur y sont sous la forme "ybas yhaut". Le cas spécial boxwidth = -2.0 est pour les donnés sur quatre colonnes avec les erreurs sur y sous la forme "ybas yhaut". Dans ce cas, la largeur de boîte est calculée de manière à ce que chaque boîte touche les boîtes adjacentes. La largeur est aussi calculée dans les cas où des données sur trois colonnes sont utilisées.
La hauteur de boîte est determinée à partir de l'erreur en y de la même façon que pour le style yerrorbars - soit de y-ydelta à y+ydelta soit de ybas à yhaut, en fonction du nombre de colonnes fournies. Voir Demo.
Le style boxes n'est utile que pour les tracés 2D. Il dessine une boîte centrée sur la coordonnée x donnée à partir de l'axe des x (non pas le bord du graphe) et la coordonnée y donnée. La largeur de la boîte est obtenue de trois façons possibles. S'il s'agit d'un graphe de données et si le fichier a une troisième colonne, celle-ci est utilisée pour fixer la largeur de la boîte. Sinon, si une largeur a été fixée en utilisant la commande set boxwidth, celle-ci est utilisée. Si aucune de ces données n'est disponible, la largeur de chaque boîte est calculée automatiquement de façon à ce qu'elle touche les boîtes adjacentes.
Le style boxxyerrorbars n'est utile que pour les tracés 2D. C'est une combinaison des styles boxes et xyerrorbars.
La largeur et la hauteur de la boîte sont déterminées à partir des erreurs x et y comme elles le sont pour le style xyerrorbars - soit de xbas à xhaut et de ybas à yhaut, soit de x-xdelta à x+xdelta et de y-ydelta à y+ydelta, selon le nombre de colonnes de données fournies.
Le style candlesticks n'est utile que pour les tracés 2D de données financières. Cinq colonnes de données sont requises : dans l'ordre il doit y avoir la coordonnée x (très probablement une date) et le prix d'ouverture, les prix bas et haut, et le prix de fermeture. Le symbole est un rectangle ouvert, centré horizontalement sur la coordonnée x et limité verticalement par les prix d'ouverture et de fermeture. Un segment vertical à la coordonnée x monte du haut du rectangle jusqu'au prix haut, et un autre descend jusqu'au prix bas. La largeur du rectangle peut être changée par set bar. Le symbole reste inchangé si les prix bas et haut sont interchangés ou si les prix d'ouverture et de fermeture sont interchangés. Voir set bar et financebars. Voir demos.
Le style financebars n'est utile que pour les tracés 2D de données financières. Cinq colonnes de données sont requises : dans l'ordre il doit y avoir la coordonnée x (très probablement une date) et le prix d'ouverture, les prix bas et haut, et le prix de fermeture. Le symbole est un segment vertical, situé horizontalement à la coordonnée x et limité verticalement par les prix haut et bas. Un trait de graduation horizontal sur la gauche marque le prix d'ouverture et un sur la droite marque le prix de fermeture. La longueur de ces traits peut être changée par set bar. Le symbole reste inchangé si les prix haut et bas sont interchangés. Voir set bar et candlesticks. Voir demos.
Le style fsteps n'est utile que pour les tracés 2D. Il connecte les points consécutifs par deux segments : le premier de (x1,y1) à (x1,y2) et le second de (x1,y2) à (x2,y2). Il produit ainsi un graphe "en escalier haut". Voir demo.
Si autoscale est activé, il sélectionne l'intervalle en x à partir des données plutôt que des pas, ainsi la largeur des points finaux sera la moitié de celle des autres points. Voir demo.
histeps est seulement un style de tracé : gnuplot n'a pas la capacité de créer des classes et de déterminer leur effectif à partir d'un jeu de données.
Le style impulses affiche une ligne verticale à partir de l'axe x (pas le bord du graphe), ou à partir de la base de la grille pour splot, pour chaque point.
Le style lines relie les points adjacents par des segments droits.
Le style linespoints conjugue les styles lines et points, c'est-à-dire qu'il dessine un petit symbole à chaque point et ensuite connecte les points adjacents avec des segments droits. La commande set pointsize peut être utilisée pour changer la taille des points. Voir set pointsize pour son utilisation.
linespoints peut être abrégé en lp.
Le style points affiche un petit symbole en chaque point. La commande set pointsize peut être utilisée pour changer la taille des points. Voir set pointsize pour son utilisation.
Le style steps n'est utile que pour les tracés 2D. Il connecte les points consécutifs par deux segments : le premier de (x1,y1) à (x2,y1) et le second de (x2,y1) à (x2,y2). Il produit ainsi un graphe "en escalier bas". Voir demo.
Le style xerrorbars n'est utile que pour les tracés 2D. xerrorbars est comme dots, excepté qu'une barre d'erreur horizontale est aussi dessinée. En chaque point (x,y) une ligne est tracée de (xbas,y) à (xhaut,y) ou de (x-xdelta,y) à (x+xdelta,y), selon le nombre de colonnes de données fournies. Une marque de graduation est placée aux extrémités de la barre d'erreur (à moins que set bar soit utilisé - voir set bar pour des détails).
Le style xyerrorbars n'est utile que pour les tracés 2D. xyerrorbars est comme dots, excepté que des barres d'erreur horizontale et verticale sont aussi dessinées. En chaque point (x,y) des lignes sont tracées de (x,y-ydelta) à (x,y+ydelta) et de (x-xdelta,y) à (x+xdelta,y) ou de (x,ybas) à (x,yhaut) et de (xbas,y) à (xhaut,y), selon le nombre de colonnes de données fournies. Une marque de graduation est placée aux extrémités de la barre d'erreur (à moins que set bar soit utilisé - voir set bar pour des détails).
Si des données sont fournies sous une forme mixte non gérée, le filtre using de la commande plot doit être utilisé pour le transformer en la forme appropriée. Par exemple si les données sont de la forme (x,y,xdelta,ybas, yhaut), alors vous pouvez utiliser
plot 'data' using 1:2:($1-$3),($1+$3),4,5 with xyerrorbars
Le style yerrorbars (ou errorbars) n'est utile que pour les tracés 2D. yerrorbars est comme dots, excepté qu'une barre d'erreur verticale est aussi dessinée. En chaque point (x,y) une ligne est tracée de (x,y-ydelta) à (x,y+ydelta) ou de (x,ybas) à (x,yhaut), selon le nombre de colonnes de données fournies. Une marque de graduation est placée aux extrémités de la barre d'erreur (à moins que set bar soit utilisé - voir set bar pour les détails). Voir demo.
La commande set surface contrôle l'affichage de surfaces par splot.
Syntaxe :
set surface
set nosurface
show surface
La surface est dessinée avec le style spécifié par with, ou à défaut avec le style approprié : données ou fonction.
Si l'on tape set nosurface, splot ne tracera pas les points et les courbes correspondant aux fonctions et aux fichiers de données. Les contours peuvent encore être tracés sur la surface, selon l'option set contour. set nosurface; set contour base est utile pour afficher les contours sur la base seulement. Voir aussi set contour.
gnuplot supporte de nombreux périphériques graphiques différents. Utilisez set terminal pour indiquer à gnuplot quel type de sortie utiliser, et set output pour rediriger cette sortie vers un fichier ou un périphérique particulier.
Syntaxe :
set terminal {<type-terminal>}
show terminal
Si <type-terminal> est omis, gnuplot liste les types de terminaux disponibles. <type-terminal> peut être abrégé.
Si set terminal et set output sont utilisés conjointement, il vaut mieux régler en premier le terminal, car certains terminaux positionnent un flag qui est nécessaire sous certains OS.
Plusieurs terminaux ont des options supplémentaires. Par exemple, voir dumb, iris4d, hpljii ou postscript.
Ce document peut décrire des pilotes qui ne sont pas disponibles pour votre machine car ils ne sont pas installés, ou peut omettre certains pilotes disponibles, selon son format de sortie.
aed767
aifm
amiga
apollo
atari ST (via AES)
atari ST (via VDI)
be
cgi
cgm
corel
debug
svga
dumb
dxf
dxy800a
eepic
emxvga
epson-180dpi
excl
hercules
fig
gif
unixplot
gpic
gpr
grass
hp2648
hp2623a
hp500c
hpgl
hpljii
hppj
imagen
iris4d
kyo
latex
linux
macintosh
mf
mp
mgr
mif
mtos
next
next
pbm
dospc
pm
png
postscript
pslatex and pstex
pstricks
qms
regis
rgip
sun
tek410x
table
tek40
texdraw
tgif
tkcanvas
tpic
unixpc
unixplot
vx384
VWS
windows
x11
xlib
Several options may be set in aifm---the Adobe Illustrator 3.0+ driver.
set terminal aifm {<color>} {"<fontname>"} {<fontsize>}
<color> is either color or monochrome; "<fontname>" is the name of a valid PostScript font; <fontsize> is the size of the font in PostScript points, before scaling by the set size command. Selecting default sets all options to their default values: monochrome, "Helvetica", and 14pt.
Since AI does not really support multiple pages, multiple graphs will be drawn directly on top of one another. However, each graph will be grouped individually, making it easy to separate them inside AI (just pick them up and move them).
Examples:
set term aifm
set term aifm 22
set size 0.7,1.4; set term aifm color "Times-Roman" 14
set terminal amiga {screen | window} {"<fontname>"} {<fontsize>}
The default font is 8-point "topaz".
If a fixed-size window is desired, the gpr terminal may be used instead.
The atari terminal has options to set the character size and the screen colors.
set terminal atari {<fontsize>} {<col0> <col1> ... <col15.}
set terminal atari 4 # use small (6x6) font
set terminal atari 6 0 # set monochrome screen to white on black
set terminal atari 13 0 fff f00 f0 f ff f0f
# set first seven colors to black, white, green, blue,
# cyan, purple, and yellow and use large font (8x16).
The vdi terminal is the same as the atari terminal, except that it sends output to the screen via the VDI and not into AES-Windows.
The vdi terminal has options to set the character size and the screen colors.
Syntax:
set terminal vdi {<fontsize>} {<col0> <col1> ... <col15.}
The character size must appear if any colors are to be specified. Each of the (up to 16) colors is given as a three-digit hex number, where the digits represent RED, GREEN and BLUE (in that order). The range of 0--15 is scaled to whatever color range the screen actually has. On a normal ST screen, odd and even intensities are the same.
Examples:
set terminal vdi 4 # use small (6x6) font
set terminal vdi 6 0 # set monochrome screen to white on black
set terminal vdi 13 0 fff f00 f0 f ff f0f
# set first seven colors to black, white, green, blue,
# cyan, purple, and yellow and use large font (8x16).
Additionally, if an environment variable GNUCOLORS exists, its contents are interpreted as an options string, but an explicit terminal option takes precedence.
gnuplot provides the be terminal type for use with X servers. This terminal type is set automatically at startup if the DISPLAY environment variable is set, if the TERM environment variable is set to xterm, or if the -display command line option is used.
Syntax:
set terminal be {reset} {<n>}
Multiple plot windows are supported: set terminal be <n> directs the output to plot window number n. If n>0, the terminal number will be appended to the window title and the icon will be labeled gplt <n>. The active window may distinguished by a change in cursor (from default to crosshair.)
Plot windows remain open even when the gnuplot driver is changed to a different device. A plot window can be closed by pressing the letter q while that window has input focus, or by choosing close from a window manager menu. All plot windows can be closed by specifying reset, which actually terminates the subprocess which maintains the windows (unless -persist was specified).
Plot windows will automatically be closed at the end of the session unless the -persist option was given.
The size or aspect ratio of a plot may be changed by resizing the gnuplot window.
Linewidths and pointsizes may be changed from within gnuplot with set linestyle.
For terminal type be, gnuplot accepts (when initialized) the standard X Toolkit options and resources such as geometry, font, and name from the command line arguments or a configuration file. See the X(1) man page (or its equivalent) for a description of such options.
A number of other gnuplot options are available for the be terminal. These may be specified either as command-line options when gnuplot is invoked or as resources in the configuration file "/.Xdefaults". They are set upon initialization and cannot be altered during a gnuplot session.
command-line_options
monochome_options
color_resources
grayscale_resources
line_resources
In addition to the X Toolkit options, the following options may be specified on the command line when starting gnuplot or as resources in your ".Xdefaults" file:
-clear requests that the window be cleared momentarily before a
new plot is displayed.
-gray requests grayscale rendering on grayscale or color displays.
(Grayscale displays receive monochrome rendering by default.)
-mono forces monochrome rendering on color displays.
-persist plot windows survive after main gnuplot program exits
-raise raise plot window after each plot
-noraise do not raise plot window after each plot
-tvtwm requests that geometry specifications for position of the
window be made relative to the currently displayed portion
of the virtual root.
The options are shown above in their command-line syntax. When entered as resources in ".Xdefaults", they require a different syntax.
Example:
gnuplot*gray: on
gnuplot also provides a command line option (-pointsize <v>) and a resource, gnuplot*pointsize: <v>, to control the size of points plotted with the points plotting style. The value v is a real number (greater than 0 and less than or equal to ten) used as a scaling factor for point sizes. For example, -pointsize 2 uses points twice the default size, and -pointsize 0.5 uses points half the normal size.
For monochrome displays, gnuplot does not honor foreground or background colors. The default is black-on-white. -rv or gnuplot*reverseVideo: on requests white-on-black.
For color displays, gnuplot honors the following resources (shown here with their default values) or the greyscale resources. The values may be color names as listed in the BE rgb.txt file on your system, hexadecimal RGB color specifications (see BE documentation), or a color name followed by a comma and an intensity value from 0 to 1. For example, blue, 0.5 means a half intensity blue.
gnuplot*background: white gnuplot*textColor: black gnuplot*borderColor: black gnuplot*axisColor: black gnuplot*line1Color: red gnuplot*line2Color: green gnuplot*line3Color: blue gnuplot*line4Color: magenta gnuplot*line5Color: cyan gnuplot*line6Color: sienna gnuplot*line7Color: orange gnuplot*line8Color: coral
The command-line syntax for these is, for example,
Example:
gnuplot -background coral
When -gray is selected, gnuplot honors the following resources for grayscale or color displays (shown here with their default values). Note that the default background is black.
gnuplot*background: black gnuplot*textGray: white gnuplot*borderGray: gray50 gnuplot*axisGray: gray50 gnuplot*line1Gray: gray100 gnuplot*line2Gray: gray60 gnuplot*line3Gray: gray80 gnuplot*line4Gray: gray40 gnuplot*line5Gray: gray90 gnuplot*line6Gray: gray50 gnuplot*line7Gray: gray70 gnuplot*line8Gray: gray30
gnuplot honors the following resources for setting the width (in pixels) of plot lines (shown here with their default values.) 0 or 1 means a minimal width line of 1 pixel width. A value of 2 or 3 may improve the appearance of some plots.
gnuplot*borderWidth: 2 gnuplot*axisWidth: 0 gnuplot*line1Width: 0 gnuplot*line2Width: 0 gnuplot*line3Width: 0 gnuplot*line4Width: 0 gnuplot*line5Width: 0 gnuplot*line6Width: 0 gnuplot*line7Width: 0 gnuplot*line8Width: 0
gnuplot honors the following resources for setting the dash style used for plotting lines. 0 means a solid line. A two-digit number jk (j and k are >= 1 and <= 9) means a dashed line with a repeated pattern of j pixels on followed by k pixels off. For example, '16' is a "dotted" line with one pixel on followed by six pixels off. More elaborate on/off patterns can be specified with a four-digit value. For example, '4441' is four on, four off, four on, one off. The default values shown below are for monochrome displays or monochrome rendering on color or grayscale displays. For color displays, the default for each is 0 (solid line) except for axisDashes which defaults to a '16' dotted line.
gnuplot*borderDashes: 0 gnuplot*axisDashes: 16 gnuplot*line1Dashes: 0 gnuplot*line2Dashes: 42 gnuplot*line3Dashes: 13 gnuplot*line4Dashes: 44 gnuplot*line5Dashes: 15 gnuplot*line6Dashes: 4441 gnuplot*line7Dashes: 42 gnuplot*line8Dashes: 13
These terminals have no options.
set terminal cgm {<mode>} {<color>} {<rotation>} {solid | dashed}
{width <plot_width>} {linewidth <line_width>}
{"<font>"} {<fontsize>}
where <mode> is landscape, portrait, or default; <color> is either color or monochrome; <rotation> is either rotate or norotate; solid draws all curves with solid lines, overriding any dashed patterns; <plot_width> is the width of the page in points; <line_width> is the line width in points; <font> is the name of a font; and <fontsize> is the size of the font in points.
By default, cgm uses rotated text for the Y axis label.
The first six options can be in any order. Selecting default sets all options to their default values.
Examples:
set terminal cgm landscape color rotate dashed width 432 \
linewidth 1 'Arial Bold' 12 # defaults
set terminal cgm 14 linewidth 2 14 # wider lines & larger font
set terminal cgm portrait 'Times Roman Italic' 12
set terminal cgm color solid # no pesky dashes!
font
fontsize
linewidth
rotate
solid
size
width
winword6
Arial
Arial Italic
Arial Bold
Arial Bold Italic
Times Roman
Times Roman Italic
Times Roman Bold
Times Roman Bold Italic
Helvetica
Roman
Fonts are scaled assuming the page is 6 inches wide. If the size command is used to change the aspect ratio of the page or the CGM file is converted to a different width (e.g. it is imported into a document in which the margins are not 6 inches apart), the resulting font sizes will be different. To change the assumed width, use the width option.
The linewidth option sets the width of lines in pt. The default width is 1 pt. Scaling is affected by the actual width of the page, as discussed under the fontsize and width options
All distances in the CGM file are in abstract units. The application that reads the file determines the size of the final page. By default, the width of the final page is assumed to be 6 inches (15.24 cm). This distance is used to calculate the correct font size, and may be changed with the width option. The keyword should be followed by the width in points. (Here, a point is 1/72 inch, as in PostScript. This unit is known as a "big point" in TeX.) gnuplot arithmetic can be used to convert from other units, as follows:
set terminal cgm width 432 # default
set terminal cgm width 6*72 # same as above
set terminal cgm width 10/2.54*72 # 10 cm wide
Linewidths and pointsizes may be changed with set linestyle.
The corel terminal driver supports CorelDraw.
set terminal corel { default
| {monochrome | color
{<fontname> {"<fontsize>"
{<xsize> <ysize> {<linewidth> }}}}}
This terminal is provided to allow for the debugging of gnuplot. It is likely to be of use only for users who are modifying the source code.
set terminal svga {"<fontname>"}
The dumb terminal driver has an optional size specification and trailing linefeed control.
set terminal dumb {[no]feed} {<xsize> <ysize>}
set term dumb nofeed
set term dumb 79 49 # VGA screen---why would anyone do that?
The dxf terminal driver creates pictures that can be imported into AutoCad (Release 10.x). It has no options of its own, but some features of its plots may be modified by other means. The default size is 120x80 AutoCad units, which can be changed by set size. dxf uses seven colors (white, red, yellow, green, cyan, blue and magenta), which can be changed only by modifying the source file. If a black-and-white plotting device is used, the colors are mapped to differing line thicknesses. See the description of the AutoCad print/plot command.
This terminal driver supports the Roland DXY800A plotter. It has no options.
The eepic terminal driver supports the extended LaTeX picture environment. It is an alternative to the latex driver.
The output of this terminal is intended for use with the "eepic.sty" macro package for LaTeX. To use it, you need "eepic.sty", "epic.sty" and a printer driver that supports the "tpic" \specials. If your printer driver doesn't support those \specials, "eepicemu.sty" will enable you to use some of them.
Although dotted and dashed lines are possible with eepic and are tempting, they do not work well for high-sample-rate curves, fusing the dashes all together into a solid line. For now, the eepic driver creates only solid lines. There is another gnuplot driver (tpic) that supports dashed lines, but it cannot be used if your DVI driver doesn't support "tpic" \specials.
All drivers for LaTeX offer a special way of controlling text positioning: If any text string begins with '{', you also need to include a '}' at the end of the text, and the whole text will be centered both horizontally and vertically by LaTeX. --- If the text string begins with '[', you need to continue it with: a position specification (up to two out of t,b,l,r), ']{', the text itself, and finally, '}'. The text itself may be anything LaTeX can typeset as an LR-box. \rule{}{}'s may help for best positioning.
The eepic terminal has no options.
Examples: About label positioning: Use gnuplot defaults (mostly sensible, but sometimes not really best):
set title '\LaTeX\ -- $ \gamma $'
Force centering both horizontally and vertically:
set label '{\LaTeX\ -- $ \gamma $}' at 0,0
Specify own positioning (top here):
set xlabel '[t]{\LaTeX\ -- $ \gamma $}'
The other label -- account for long ticlabels:
set ylabel '[r]{\LaTeX\ -- $ \gamma $\rule{7mm}{0pt}'
set terminal emxvga
set terminal emxvesa {vesa-mode}
set terminal vgal
The only option is the vesa mode for emxvesa, which defaults to G640x480x256.
This driver supports a family of Epson printers and derivatives.
The okidata driver supports the 9-pin OKIDATA 320/321 Standard printers.
The starc driver is for the Star Color Printer.
The tandy-60dpi driver is for the Tandy DMP-130 series of 9-pin, 60-dpi printers.
set terminal nec-cp6 {monochrome | colour | draft}
With each of these drivers, a binary copy is required on a PC to print. Do not use print---use instead copy file /b lpt1:.
The fig terminal device generates output in the Fig graphics language.
set terminal fig {monochrome | color} {small | big}
{pointsmax <max_points>}
{landscape | portrait}
{metric | inches}
{fontsize <fsize>}
{size <xsize> <ysize>}
{thickness <units>}
{depth <layer>}
monochrome and color determine whether the picture is black-and-white or color. small and big produce a 5x3 or 8x5 inch graph in the default landscape mode and 3x5 or 5x8 inches in portrait mode. <max_points> sets the maximum number of points per polyline. Default units for editing with "xfig" may be metric or inches. fontsize sets the size of the text font to <fsize> points. size sets (overrides) the size of the drawing area to <xsize>*<ysize> in units of inches or centimeters depending on the inches or metric setting in effect. depth sets the default depth layer for all lines and text. The default depth is 10 to leave room for adding material with "xfig" on top of the plot.
thickness sets the default line thickness, which is 1 if not specified. Overriding the thickness can be achieved by adding a multiple of 100 to the to the linetype value for a plot command. In a similar way the depth of plot elements (with respect to the default depth) can be controlled by adding a multiple of 1000 to <linetype>. The depth is then <layer> + <linetype>/1000 and the thickness is (<linetype>%1000)/100 or, if that is zero, the default line thickness.
Additional point-plot symbols are also available with the fig driver. The symbols can be used through pointtype values % 100 above 50, with different fill intensities controlled by <pointtype> % 5 and outlines in black (for <pointtype> % 10 < 5) or in the current color. Available symbols are
50 - 59: circles
60 - 69: squares
70 - 79: diamonds
80 - 89: upwards triangles
90 - 99: downwards triangles
The size of these symbols is linked to the font size. The depth of symbols is by default one less than the depth for lines to achieve nice error bars. If <pointtype> is above 1000, the depth is <layer> + <pointtype>/1000-1. If <pointtype>%1000 is above 100, the fill color is (<pointtype>%1000)/100-1.
Available fill colors are (from 1 to 9): black, blue, green, cyan, red, magenta, yellow, white and dark blue (in monochrome mode: black for 1 to 6 and white for 7 to 9).
See plot with for details of <linetype> and <pointtype>.
The big option is a substitute for the bfig terminal in earlier versions, which is no longer supported.
Examples:
set terminal fig monochrome small pointsmax 1000 # defaults
plot 'file.dat' with points linetype 102 pointtype 759
would produce circles with a blue outline of width 1 and yellow fill color.
plot 'file.dat' using 1:2:3 with err linetype 1 pointtype 554
would produce errorbars with black lines and circles filled red. These circles are one layer above the lines (at depth 9 by default).
To plot the error bars on top of the circles use
plot 'file.dat' using 1:2:3 with err linetype 1 pointtype 2554
By default, the gif terminal driver uses a shared Web-friendy palette. Syntax:
set terminal gif {transparent} {interlace}
{tiny | small | medium | large | giant}
{size <x>,<y>}
{<color0> <color1> <color2> ...}
interlace instructs the driver to generate interlaced GIFs.
The size <x,y> is given in pixels---it defaults to 640x480. The number of pixels can be also modified by scaling with the set size command.
Each color must be of the form 'xrrggbb', where x is the literal character 'x' and 'rrggbb' are the red, green and blue components in hex. For example, 'x00ff00' is green. The background color is set first, then the border colors, then the X & Y axis colors, then the plotting colors. The maximum number of colors that can be set is 256.
Examples:
set terminal gif small size 640,480 \
xffffff x000000 x404040 \
xff0000 xffa500 x66cdaa xcdb5cd \
xadd8e6 x0000ff xdda0dd x9500d3 # defaults
which uses white for the non-transparent background, black for borders, gray for the axes, and red, orange, medium aquamarine, thistle 3, light blue, blue, plum and dark violet for eight plotting colors.
set terminal gif transparent xffffff \
x000000 x202020 x404040 x606060 \
x808080 xA0A0A0 xC0C0C0 xE0E0E0 \
which uses white for the transparent background, black for borders, dark gray for axes, and a gray-scale for the six plotting colors.
The page size is 640x480 pixels. The gif driver can create either color or monochromatic output, but you have no control over which is produced.
The current version of the gif driver does not support animated GIFs.
The unixplot driver produces device-independent output in the GNU plot graphics language. The default size of the PostScript results generated by "plot2ps" is 5 x 3 inches; this can be increased up to about 8.25 x 8.25 by set size.
Syntax:
set terminal unixplot {"<fontname>"} {<fontsize>}
which defaults to 10-point "Courier".
There is a non-GNU version of the unixplot driver which cannot be compiled unless this version is left out.
set terminal gpic {<x> <y>}
A simple graph can be formatted using
groff -p -mpic -Tps file.pic > file.ps.
The output from pic can be pipe-lined into eqn, so it is possible to put complex functions in a graph with the set label and set {x/y}label commands. For instance,
set ylab '@space 0 int from 0 to x alpha ( t ) roman d t@'
will label the y axis with a nice integral if formatted with the command:
gpic filename.pic | geqn -d@@ -Tps | groff -m[macro-package] -Tps
> filename.ps
Figures made this way can be scaled to fit into a document. The pic language is easy to understand, so the graphs can be edited by hand if need be. All co-ordinates in the pic-file produced by gnuplot are given as x+gnuplotx and y+gnuploty. By default x and y are given the value 0. If this line is removed with an editor in a number of files, one can put several graphs in one figure like this (default size is 5.0x3.0 inches):
.PS 8.0
x=0;y=3
copy "figa.pic"
x=5;y=3
copy "figb.pic"
x=0;y=0
copy "figc.pic"
x=5;y=0
copy "figd.pic"
.PE
This will produce an 8-inch-wide figure with four graphs in two rows on top of each other.
One can also achieve the same thing by the command
set terminal gpic x y
for example, using
.PS 6.0
copy "trig.pic"
.PE
If a variable window size is desired, use the apollo terminal instead.
The grass terminal driver gives gnuplot capabilities to users of the GRASS geographic information system. Contact grassp-list@moon.cecer.army.mil for more information. Pages are written to the current frame of the GRASS Graphics Window. There are no options.
The hp2648 terminal driver supports the Hewlett Packard HP2647 and HP2648. It has no options.
The hp2623a terminal driver supports the Hewlett Packard HP2623A. It has no options.
set terminal hp500c {<res>} {<comp>}
The international character sets ISO-8859-1 and CP850 are recognized via set encoding iso_8859_1 or set encoding cp850 (see set encoding for details).
Syntax:
set terminal hpgl {<number_of_pens>} {eject}
The selection
set terminal hpgl 8 eject
is equivalent to the previous hp7550 terminal, and the selection
set terminal hpgl 4
is equivalent to the previous hp7580b terminal.
The pcl5 driver supports the Hewlett-Packard Laserjet III. It actually uses HPGL-2, but there is a name conflict among the terminal devices. It has several options
Syntax:
set terminal pcl5 {<mode>} {<font>} {<fontsize>}
where <mode> is landscape, or portrait, <font> is stick, univers, or cg_times, and <fontsize> is the size in points.
With pcl5 international characters are handled by the printer; you just put the appropriate 8-bit character codes into the text strings. You don't need to bother with set encoding.
HPGL graphics can be imported by many software packages.
set terminal hpljii | hpdj {<res>}
The hp500c terminal is similar to hpdj; hp500c additionally supports color and compression.
set terminal hppj {FNT5X9 | FNT9X17 | FNT13X25}
with the middle-sized font (FNT9X17) being the default.
set terminal imagen {<fontsize>} {portrait | landscape}
{[<horiz>,<vert>]}
where fontsize defaults to 12 points and the layout defaults to landscape. <horiz> and <vert> are the number of graphs in the horizontal and vertical directions; these default to unity.
Example:
set terminal imagen portrait [2,3]
puts six graphs on the page in three rows of two in portrait orientation.
set terminal iris4d {8 | 24}
The color depth is not really a choice -- the value appropriate for the hardware should be selected.
85 85 85 Background (dark gray)
0 0 0 Boundary (black)
170 0 170 Labeling (magenta)
85 255 255 Plot Color 1 (light cyan)
170 0 0 Plot Color 2 (red)
0 170 0 Plot Color 3 (green)
255 85 255 Plot Color 4 (light magenta)
255 255 85 Plot Color 5 (yellow)
255 85 85 Plot Color 6 (light red)
85 255 85 Plot Color 7 (light green)
0 170 170 Plot Color 8 (cyan)
170 170 0 Plot Color 9 (brown)
The latex and emtex drivers allow two options.
set terminal latex | emtex {courier | roman | default} {<fontsize>}
fontsize may be any size you specify. The default is for the plot to inherit its font setting from the embedding document.
Unless your driver is capable of building fonts at any size (e.g. dvips), stick to the standard 10, 11 and 12 point sizes.
METAFONT users beware: METAFONT does not like odd sizes.
All drivers for LaTeX offer a special way of controlling text positioning: If any text string begins with '{', you also need to include a '}' at the end of the text, and the whole text will be centered both horizontally and vertically. If the text string begins with '[', you need to follow this with a position specification (up to two out of t,b,l,r), ']{', the text itself, and finally '}'. The text itself may be anything LaTeX can typeset as an LR-box. '\rule{}{}'s may help for best positioning.
Points, among other things, are drawn using the LaTeX commands "\Diamond" and "\Box". These commands no longer belong to the LaTeX2e core; they are included in the latexsym package, which is part of the base distribution and thus part of any LaTeX implementation. Please do not forget to use this package.
Points are drawn with the LaTex commands \Diamond and \Box. These commands do no longer belong to the LaTeX2e core, but are included in the latexsym-package in the base distribution, and are hence part of all LaTeX implementations. Please do not forget to use this package.
Examples: About label positioning: Use gnuplot defaults (mostly sensible, but sometimes not really best):
set title '\LaTeX\ -- $ \gamma $'
Force centering both horizontally and vertically:
set label '{\LaTeX\ -- $ \gamma $}' at 0,0
Specify own positioning (top here):
set xlabel '[t]{\LaTeX\ -- $ \gamma $}'
The other label -- account for long ticlabels:
set ylabel '[r]{\LaTeX\ -- $ \gamma $\rule{7mm}{0pt}'
Several options may be set in the 'macintosh' driver.
set terminal macintosh {singlewin | multiwin} {vertical | novertical}
{size <width>, <height> | default}
be drawn vertically. novertical turns this option off.
size <width>, <height> overrides the graph size set in the preferences
dialog until it is cleared with either 'set term mac size default'
or 'set term mac default'.
'set term mac size default' sets the window size settings to those set in
the preferences dialog.