gnuplot-fr

Un programme de tracé interactif

Thomas Williams & Colin Kelley

Version 3.7 organisée par : David Denholm

Principaux contributeurs (ordre alpabétique) :

Copyright (C) 1986 - 1993, 1998 Thomas Williams, Colin Kelley

Listes de diffusion (anglophones) :

Commentaires : info-gnuplot@dartmouth.edu

Rapports de bug : bug-gnuplot@dartmouth.edu

Ce manuel a été préparé par Dick Crawford

3 Decembre 1998

traduit en français par Guilde Education, Aout 1999 - Avril 2000

G. Allegre, E. Fanchon, C. Boussard, V. Konieczek, A. Vareille, P. Giroud

intégrée et maintenue par Guillaume Allègre


gnuplot
Commandes
Interfaces utilisateur graphiques [interfaces, gui]
Bugs


gnuplot

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

      Copyright (C) 1986 - 1993, 1998   Thomas Williams, Colin Kelley

La permission d'utiliser, de copier et de distribuer ce logiciel et sa documentation, quel que soit le but, en échange ou non d'une rémunération, est accordée, à condition que le copyright au-dessus apparaisse dans chaque copie, et que ce copyright et la présente permission apparaissent tous deux dans la documentation.

La permission de modifier le logiciel est accordée, mais pas celle de distribuer le code source complètement modifié. Les modifications doivent être distribuées sous forme de patches pour la version officielle. La permission de distribuer des binaires compilés à partir de sources modifiées est accordée, à condition :

  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. 

La permission de distribuer la version officielle du code source, accompagnée des modifications sous forme d'un fichier patch est accordée avec les mêmes conditions que 2 à 4 pour les distributions binaires.

Ce logiciel est distribué "tel quel", sans autre garantie, explicite ou implicite, que celle fournie par la loi en vigueur.

AUTEURS

      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> 


Introduction

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).

Une démo simple de tracé


Chercher de l'aide [support]

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.


Nouveautés de la version 3.7 [nouveautes]

Gnuplot version 3.7 contient beaucoup de nouveautés. Cette section en donne une liste partielle et pointe vers les nouveaux sujets, sans ordre particulier.

1. fit f(x) 'file' via utilise la méthode de Marquardt-Levenberg pour interpoler les données. (Ce n'est que peu différent du patch gnufit disponible pour la version 3.5).

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.


Mode Script/Interactif [script, interactif]

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


Edition de la ligne de commande [edition, historique]

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 .


Commentaires

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é.


Coordonnées

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.


Environnement

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.


Expressions

En général, toute expression mathématique conforme aux langages C, FORTRAN, Pascal, ou BASIC, est valide. La précédence des opérateurs est celle du C. Espaces et tabulations sont ignorés à l'intérieur des expressions.

Les constantes complexes s'expriment {<reel>,<imag>}, où <reel> et <imag> sont des nombres. Par exemple, {3,2} représente 3 + 2i; {0,1} représente 'i' lui-même. Les accolades sont obligatoires ici.

A noter que gnuplot gère aussi bien les "réels" que les "entiers", tout comme FORTRAN et C. Les entiers s'écrivent "1", "-10", etc ; les réels "1.0", "-10.0", "1e1", 3.5e-1, etc. La principale différence entre les deux concerne la division : le résultat de la division entre entiers est tronqué : 5/2 = 2 ; celui de la division entre réels ne l'est pas : 5.0/2.0 = 2.5. Dans les expressions mixtes, les entiers sont convertis en réels avant l'évaluation : 5/2e0 = 2.5. Le résulat de la division d'un entier négatif par un entier positif varie selon les compilateurs. Faites un test du genre "print -5/2" pour voir si votre système répond -2 ou -3.

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]


Fonctions

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


abs

La fonction abs renvoie la valeur absolue de l'argument. La valeur renvoyée est du même type que l'argument.

Pour les arguments complexes, abs(x) est le module de x [i.e., sqrt(real(x)**2 + imag(x)**2) ].


acos

La fonction acos renvoie l'arc cosinus de son argument (inverse du cosinus). acos renvoie une valeur en radians ou degrés, selon ce qui a été spécifié

 avec set angles.


acosh

La fonction acosh renvoie l'arg cosinus hyperpolique exprimé en radians.


arg

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.


asin

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.


asinh

La fonction asinh renvoie l'arg sinus hyperbolique de son argument en radians.


atan

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.


atan2

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.


atanh

La fonction atanh renvoie l'arg tangente hyperbolique de son argument en radians


besj0

La fonction besj0 renvoie la j-0ième fonction de Bessel de son argument. L'argument de besj0 doit être en radians.


besj1

La fonction besj1 renvoie la j-première fonction de Bessel de son argument. L'argument de besj1 doit être en radians.


besy0

La fonction besy0 renvoie la y-0ième fonction de Bessel de son argument. L'argument de besy0 doit être en radians.


besy1

La fonction besy1 renvoie la y-première fonction de Bessel de son argument. L'argument de besy1 doit être en radians.


ceil

La fonction ceil renvoie le plus petit entier non inférieur à son argument. Pour les nombres complexes, ceil renvoie le plus petit entier non inférieur à la partie réelle de son argument.


cos

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.


cosh

La fonction cosh renvoie the le cosinus hyperbolique de son argument. L'argument de cosh doit être en radians.


erf

La fonction erf renvoie la fonction d'erreur de la partie réelle de son argument. Si l'argument est complexe, la partie imaginaire est ignorée. La fonction d'erreur de x réel est définie par : erf(x) = 2/sqrt(pi) * intégrale de 0 à x de exp(-t*t) dt


erfc

La fonction erfc renvoie 1.0 moins la fonction d'erreur de la partie réelle de son argument (complémentaire à 1.0 de la fonction d'erreur). Si l'argument est complexe, la partie imaginaire est ignorée.


exp

La fonction exp renvoie la fonction exponentielle de son argument (e élévé à la puissance de cet argument). Dans certaines implementations (celle de Sun en particulier), exp(-x) renvoie une valeur indéfinie si x est très grand. Une fonction définie par l'utilisateur comme "safe(x) = x<-100 ? 0 : exp(x)" peut se révéler utile dans ce cas.


floor

La fonction floor renvoie le plus grand entier non supérieur à son argument. Pour des nombres complexes, floor renvoie le plus grand entier non supérieur à la partie réelle de son argument.


gamma

La fonction gamma renvoie la fonction gamma de la partie réelle de son argument. Elle est définie, pour x réel, par : gamma (x) = intégrale de 0 à +infini de t^(x-1) e^-t dt Pour un entier n, gamma(n+1) = n! Si l'argument est complexe la partie imaginaire est ignorée.


ibeta

La fonction ibeta renvoie la fonction beta incomplète des parties réelles de ses arguments. p, q > 0 et x dans l'intervalle [0:1]. Si les arguments sont complexes, les parties imaginaires sont ignorées.


inverf

La fonction inverf renvoie l'inverse de la fonction d'erreur de la partie réelle de son argument.


igamma

La fonction igamma renvoie la fonction gamma incomplète de la partie réelle de son argument. a > 0 et x >= 0. Si les arguments sont complexes, les parties imaginaires sont ignorées.


imag

La fonction imag renvoie le nombre réel partie imaginaire de son argument sous la forme d'un nombre réel.


invnorm

La fonction invnorm renvoie l'inverse de la fonction de distribution normale de la partie réelle de son argument.


int

La fonction int renvoie la partie entière de son argument, tronquée vers zéro.


lgamma

La fonction lgamma renvoie le logarithme naturel de la fonction gamma de la partie réelle de son argument. Si l'argument est complexe, la partie imaginaire est ignorée.


log

La fonction log renvoie le logarithme naturel (base e) de son argument.


log10

La fonction log10 renvoie le logarithme (base 10) de son argument.


norm

La fonction norm renvoie la fonction de distribution normale (ou gaussienne) de la partie réelle de son argument.


rand

La fonction rand renvoie un nombre pseudo-aléatoire de l'intervalle [0:1], la partie réelle de l'argument étant prise comme point de départ. Si ce point de départ est négatif, la séquence est (ré)initialisée. Si l'argument est complexe, sa partie imaginaire est ignorée.


real

La fonction real renvoie la partie réelle de son argument.


sgn

La fonction sgn renvoie 1 si son argument est positif, -1 si son argument est négatif, et 0 si son argument est 0. Si l'argument est complexe, sa partie imaginaire est ignorée.


sin

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.


sinh

La fonction sinh renvoie le sinus hyperbolique de son argument. L'argument de sinh doit être en radians.


sqrt

La fonction sqrt renvoie la racine carrée de son argument.


tan

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.


tanh

La fonction tanh renvoie la tangente hyperbolique de son argument. L'argument de tanh doit être en radians.

Quelques autres fonctions sont disponibles également.


column

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.


tm_hour

La fonction tm_hour interprète son argument comme un temps mesuré en secondes à partir du 1er janvier 2000. Elle renvoie l'heure (un entier allant de 0 à 23) sous la forme d'un réel.


tm_mday

La fonction tm_mday interprète son argument comme un temps mesuré en secondes à partir du 1er janvier 2000. Elle renvoie le jour du mois (un entier allant de 1 à 31) sous la forme d'un entier.


tm_min

La fonction tm_min interprète son argument comme un temps mesuré en secondes à partir du 1er janvier 2000. Elle renvoie la minute (un entier allant de 0 à 59) sous la forme d'un réel.


tm_mon

La fonction tm_mon interprète son argument comme un temps mesuré en secondes à partir du 1er janvier 2000. Elle renvoie le mois (un entier allant de 1 à 12) sous la forme d'un réel.


tm_sec

La fonction tm_sec interprète son argument comme un temps mesuré en secondes à partir du 1er janvier 2000. Elle renvoie la seconde (un entier allant de 0 à 59) sous la forme d'un réel.


tm_wday

La fonction tm_wday interprète son argument comme un temps mesuré en secondes à partir du 1er janvier 2000. Elle renvoie le jour de la semaine (un entier allant de 1 à 7) sous la forme d'un réel.


tm_yday

La fonction tm_yday interprète son argument comme un temps mesuré en secondes à partir du 1er janvier 2000. Elle renvoie le jour dans l'année (un entier allant de 1 à 366) sous la forme d'un réel.


tm_year

La fonction tm_year interprète son argument comme un temps mesuré en secondes à partir du 1er janvier 2000. Elle renvoie l'année (un entier) sous la forme d'un réel.


valid

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.


Opérateurs

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.

Unaire
Binaire
Ternaire


Unaire

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.


Binaire

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.

Le ET (&&) et le OU (||) logiques court-circuitent de la même façon qu'en C. Cela signifie que le second opérande du && n'est pas évalué si le premier est faux ; le second opérande du || n'est pas évalué si le premier est vrai.


Ternaire

Il n'y a qu'un seul opérateur ternaire :

    Symbole      Exemple      Explication
      ?:          a?b:c     opération ternaire

L'opérateur ternaire se comporte comme en C. Le premier argument (a), qui doit être un entier, est évalué. S'il est vrai (non nul), le second argument (b) est évalué et retourné ; sinon le troisieme argument (c) est évalué et retourné.

L'opérateur ternaire est très utile à la fois pour construire des fonctions par morceaux et pour tracer des points seulement lorsque certaines conditions sont vérifiées.

Exemples :

1. Tracer une fonction qui est égale à sin(x) pour 0 <= x < 1, 1/x pour 1 <= x < 2, et non définie ailleurs :

      f(x) = 0<=x && x<1 ? sin(x) : 1<=x && x<2 ? 1/x : 1/0
      plot f(x)
 [ternary.gif]

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.


Variables et fonctions utilisateur [variables, utilisateur]

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)

[userdefined.gif] 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.


Glossaire

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.


Tracer

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.


Démarrer

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.


Substitution

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


Syntaxe

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).


Les données temporelles [temps, date]

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.


Commandes

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


cd

La commande cd change le répertoire de travail.

Syntaxe :

      cd '<répertoire>'

Le nom du répertoire doit être entre guillemets.

Exemples :

      cd 'sousrep'
      cd ".."

Les utilisateurs de DOS _doivent_ utiliser des guillemets simples : le backslash [\] a une signification spéciale entre guillements doubles. Par exemple,

      cd "c:\newdata"

échoue, alors que

      cd 'c:\newdata'

marche correctement.


call

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.


clear

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.


exit

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 (ajustement) [fit]

La commande fit permet d'ajuster une fonction définie par l'utilisateur à un ensemble de points de données (x,y) ou (x,y,z), grâce à une implantation de l'algorithme des moindres carrés non linéaires de Levenberg-Marquardt. Toute variable définie par l'utilisateur apparaissant dans le corps de la fonction peut servir de paramètre d'ajustement, mais le type de retour de la fonction doit être réel.

Syntaxe :

      fit {[interv_x] {[interv_y]}} <fonction> '<fichier_données>'
          {modificateurs_fichier}
          via '<fichier_parametres>' | <var1>{,<var2>,...}

Les intervalles peuvent être spécifiés pour limiter les données à ajuster ; les données hors intervalle sont ignorées. La syntaxe est

      [{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


Paramètres ajustables [parametres]

Il y a deux façons de spécifier les paramètres à ajuster avec via, soit directement sur la ligne de commande, soit indirectement en référençant un fichier de paramètres. Les deux méthodes utilisent des moyens différents de fixer les valeurs initiales.

Les paramètres ajustables peuvent être spécifiés par une liste de variables séparées par des virgules après le mot-clef via. Toute variable qui n'est pas encore définie est créée avec une valeur initiale de 1.0. Cependant, l'ajustement a plus de chances de converger rapidement si les variables sont initialisées avec des valeurs plus appropriées.

Dans un fichier de paramètres, les paramètres à ajuster, et leurs valeurs initiales, sont spécifiés, un par ligne, sous la forme

      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.


guide du débutant [guide_debutant, guide]

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.


estimation d'erreurs [erreurs]

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]


apercu statistique [apercu_statistique, apercu]

La théorie des moindres carrés non linéaires (MCNL) est en général décrite en termes de distribution normale des erreurs, c'est à dire que les données d'entrée sont supposées être un échantillon d'une population de moyenne et d'écart-type donnés, réparties selon une distribution gaussienne (normale). Pour un échantillon de taille suffisamment grande, et connaissant l'écart-type de la population, on peut utiliser les résultats sur la distribution du khi-deux pour évaluer la "pertinence de l'ajustement", en examinant la variable souvent appelée "khi-deux". Si l'on définit le nombre de degrés de liberté comme le nombre de données moins le nombre de paramètres à ajuster, et le khi-deux réduit comme khi-deux divisé par le nombre de degrés de liberté, il est ici suffisant de dire qu'un khi-deux réduit de 1.0 signifie que la somme pondérée des résidus au carré est celle attendue pour un échantillon pris au hasard parmi une population caractérisée par la fonction ajustée, avec les valeurs courantes des paramètres et des écarts-types.

Si l'écart-type pour la population n'est pas constant, comme en statistiques descriptives où variance = comptages, chaque point doit être pondéré individuellement en comparant les sommes des écarts observée et attendue.

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.


guide pratique [pratique, guide_pratique]

Si vous avez une référence permettant d'assigner un poids à chaque point, cela vous permet d'utiliser de l'information supplémentaire sur vos mesures, par exemple, de prendre en compte que certains points sont plus fiables que d'autres. Cela peut affecter la valeur finale des paramètres.

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.


contrôle d'ajustement [controle]

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]


variables de contrôle [variables]

L'epsilon limite par défaut (1e-5) peut être changé en affectant une valeur à

      FIT_LIMIT

Quand la somme des carrés des résidus change d'une itération à l'autre d'un facteur inférieur à ce nombre, on considère que l'ajustement a "convergé".

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.

Si vous avez besoin d'un contrôle plus précis, et que vous maîtrisez l'algorithme de Levenberg-Marquardt, il y a d'autres variables que vous pouvez modifier. La valeur de départ de "lambda" est normalement calculée automatiquement à partir de la matrice de LM, mais vous pouvez indiquer la vôtre avec

      FIT_START_LAMBDA

Une valeur de FIT_START_LAMBDA inférieure ou égale à 0 sera remplacée par la valeur calculée automatiquement. La variable

      FIT_LAMBDA_FACTOR

contient le facteur par lequel "lambda" est augmenté ou diminué si le khi-deux de la fonction cible augmente ou diminue significativement. Une valeur de zéro est remplacée par le facteur par défaut, 10.0.

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".


variables d'environnement [environnement]

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.


multi-branche

Dans un ajustement multi-branche, plusieurs ensembles de points peuvent ajuster simultanément des fonctions d'une variable avec des paramètres communs, en minimisant la SCRP totale. La fonction et les paramètres (branche) de chaque ensemble de points sont sélectionnés en utilisant une "pseudo-variable", par exemple, soit le numéro de ligne de donnée (un index de colonne de -1), soit l'index de donnée, comme seconde variable indépendante.

Exemple : étant données 2 fonctions à décroissance exponentielles de la forme z=f(x), chacune décrivant un ensemble de données, mais de période de décroissance commune, estimer les valeurs des paramètres. Si le fichier de données est de format x:z:s, alors on effectuera :

     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

Pour un exemple plus compliqué, voir le fichier "hexa.fnc" utilisé par le tracé de démonstration "fit.dem".

Une pondération appropriée peut être nécessaire, car les poids peuvent entraîner la prédominance d'une branche s'il y a une différence d'intervalle pour la variable liée (y) entre les 2 branches. Eventuellement, ajuster chaque branche indépendamment, en utilisant la solution multi-branche comme valeurs initiales, peut vous donner une idée de l'influence relative de chaque branche sur la solution commune.


valeurs initiales [valeurs_initiales, initial]

L'ajustement non-linéaire n'est pas assuré de converger vers l'optimum global (la solution de plus petite SCRP), et peut rester bloquer dans un minimum local. La routine n'a aucun moyen de le déterminer ; c'est à vous de juger si c'est le cas.

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.


trucs

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 [help, aide]

La commande help affiche l'aide en ligne. Pour obtenir de l'information sur un sujet particulier, utilisez la syntaxe :

       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 []


if

La commande if permet l'exécution conditionnelle de commandes.

Syntaxe:

       if (<condition>) <ligne-de-commande>

<condition> va être évaluée. Si elle est réalisée (non-nulle), alors les commandes de la <ligne-de-commande> seront exécutées. Si elle n'est pas réalisée (nulle), alors la totalité de <ligne-de-commande> est ignorée. Notez que l'utilisation de ; pour permettre plusieurs commandes sur la même ligne ne termine pas les commandes conditionnées.

Exemples :

       pi=3
       if (pi!=acos(-1)) print "?Ajustement de pi!"; pi=acos(-1); print pi

affichera:

       ?Ajustement de pi!
       3.14159265358979

mais

       if (1==2) print "Jamais vu ça"; print "Ni ça non plus"

n'affichera rien du tout.

Voir reread pour avoir un exemple de comment if et reread peuvent être utilisés ensemble pour réaliser une boucle.


load

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.


pause

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

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-)


fichier de données [fichier, donnees]

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


every (tous les)

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.


Exemple de fichiers de données [fichier exemple]

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

[population.gif]


index

Le mot-clef index permet de tracer seulement un sous-ensemble de données dans un fichier contenant plusieurs échantillonnages.

Syntaxe :

      plot 'fichier' index <m>{{:<n>}:<p>}

Les ensembles de données sont séparés par des paires d'enregistrements vides. index <m> sélectionne seulement l'ensemble <m> ; index <m>:<n> sélectionne les ensembles dans l'intervalle <m> à <n> ; index <m>:<n>:<p> sélectionne les indices <m>, <m>+<p>, <m>+2<p>, etc. mais s'arrêtant à <n>. L'indice 0 est assigné au premier ensemble de données du fichier. Spécifier un indice trop large renvoie un message d'erreur. Si index n'est pas spécifié, tous les ensembles de données sont tracés comme un seul ensemble.

Exemple :

      plot 'fichier' index 4:5
 Démo de splot avec index.


smooth (lissage)

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


acsplines

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


bezier

L'option bezier approche les données par une courbe de Bézier de degré n (le nombre de points de données) qui relie les points extrêmaux.


csplines

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).


sbezier

L'option sbezier rend tout d'abord les donées monotones (unique), puis applique l'algorithme bezier.


unique

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.


noms de fichiers spéciaux [fichier special]

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.


thru

La fonction thru est fournie pour assurer la compatibilité ascendante.

Syntaxe :

      plot 'file' thru f(x)

c'est équivalent à :

      plot 'file' using 1:(f($2))

Bien que la seconde ligne ait l'air plus complexe, elle est bien plus souple. L'exemple plus naturel (?)

      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.


using

Le modificateur le plus courant pour les fichiers de données est using.

Syntaxe :

      plot 'fichier' using {<entree> {:<entree> {:<entree> ...}}} {'format'}

Si un format est spécifié, chaque enregistrement est lu par la fonction 'scanf' de la bibliothèque C, avec la chaîne de format spécifiée. Sinon, l'enregistrement est lu et scindé en colonnes selon les espaces et tabulations. Aucun format ne peut être spécifié si le format temporel est utilisé pour les données (mis en service par set data time).

Le tableau de données résultant est ensuite scindé en colonnes selon les entrées de la fonction. Chaque entrée peut être un simple numéro de colonne, ce qui sélectionne la donnée, une expression entre parenthèses, ou vide. L'expression peut utiliser $1 pour accéder au premier nombre lu, $2 pour le deuxième, etc. Elle peut aussi utiliser column(x) et valid(x) où x est une expression arbitraire qui retourne un entier. column(x) retourne la x-eme donnée ; valid(x) teste si la donnée de la x-eme colonne est un nombre valide. Un numéro de colonne de 0 génère un nombre augmentant d'un à chaque point (à partir de 0), et remis à zéro à la rencontre de deux enregistrements vides. Un numéro de colonne de -1 donne le numéro de ligne-donnée, qui commence à 0, s'incrémente à chaque enregistrement vide simple, et est remis à zéro à chaque enregistrement vide double. Un numéro de colonne de -2 donne le numéro d'index, qui est incrémenté seulement quand deux enregistrements vides sont trouvés. Une <entree> vide sera interprétée par défaut comme son ordre dans la liste des entrées. Par exemple, using ::4 sera interprété comme using 1:2:4.

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.


errorbars (barres d'erreur)

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.


paramétrique (parametric)

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


intervalles (ranges)

L'option ranges spécifie la région du graphe (intervalles) qui doit être affichée.

Syntaxe :

      [{<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'

Voir la démo.


title (titre)

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 (avec -style-)

Les fonctions et données peuvent être affichés dans un grand nombre de styles. Le mot-clef with (avec) fournit le moyen de sélection.

Syntaxe :

      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


print

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.


pwd

La commande pwd affiche le nom du répertoire courant à l'écran.


quit

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.


replot

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).


reread

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


reset

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.


save

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'


set-show [set, show]

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


angles

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`. 


arrow

Des flèches arbitraires peuvent être placées avec la commande set arrow

Syntaxe :

      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

<tag> est un numéro (entier) qui identifie la flèche. Si la flèche n'est pas numérotée, c'est la plus petite valeur disponible qui est assignée. Le numéro peut être utilisé pour supprimer ou modifier une flèche. Pour modifier les attributs d'une flèche, il faut utiliser la commande set arrow avec le numéro de flèche approprié et préciser les paramètres à changer.

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. 


autoscale

Le calcul automatique de l'échelle (ie de l'intervalle de tracé) peut être défini séparément pour les axes x, y, z, ou globalement pour tous. Par défaut tous les axes sont en échelle automatique.

Syntaxe :

      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]


mode paramétrique [parametrique]

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.


mode polaire [polaire]

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


bar

La commande set bar contrôle les marques aux extrêmités des barres d'erreurs.

Syntaxe :

      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.


bmargin

La commande set bmargin fixe la taille de la marge inférieure. Veuillez vous référer à set margin pour les details.


border

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

Démo de Bordures.


boxwidth

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)


clabel

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.


clip

clip permet de déterminer la manière de traiter les points et les lignes qui débordent du cadre du tracé.

Syntaxe :

      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.


cntrparam

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


contour

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


data style

La commande set data style modifie les styles de tracé pour les tracés de données.

Syntaxe :

      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.


dgrid3d

La commande set dgrid3d active la "projection sur une grille" de données 3D dispersées (ne respectant pas au départ un format de grille), et permet d'en régler les paramètres de contrôle.

Syntaxe :

      set dgrid3d {<taille_ligne>} {,{<taille_col>} {,<norme>}}
      set nodgrid3d
      show dgrid3d

Par défaut dgrid3d n'est pas active. Quand elle est activée, les données 3D lues dans un fichier sont toujours traitées comme ensemble de données dispersées. Une grille calculée à partir de la boîte englobante des données et de taille correspondant aux paramètres de taille ligne/colonne est créée pour les tracés et la détermination de contours. La grille est de pas constant sur x (lignes), et sur y (colonnes) ; les valeurs de z sont des moyennes pondérées des points z donnés.

Le troisième paramètre, <norme>, contrôle la pondération : chaque donnée est pondérée en fonction inverse de sa distance au point de grille élevée à la puissance <norme>. [En fait, les poids sont l'inverse de la fonction dx^norm + dy^norm, où dx et dy sont les composantes de séparation du point de grille au point de donnée. Pour les valeurs de norm qui sont multiples de deux, en particulier 4, 8 et 16, le calcul est optimisé en utilisant la distance euclidienne dans la pondération, (dx^2+dy^2)^norm/2. Cependant, n'importe quel entier positif peut être utilisé.]

Plus le point de donnée est proche d'un point de grille, plus il a d'effet sur ce point de grille. Plus la valeur de <norme> est élevée, moins les points de données éloignés ont d'influence sur ce point de grille.

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.


dummy

La commande set dummy change le nom des variables muettes.

Syntaxe :

      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.


encoding

La commande set encoding détermine un codage de caractères. Les choix valides sont default, qui indique au terminal d'utiliser sa valeur par défaut, iso_8859_1 (connue dans le monde PostScript comme ISO-Latin1), qui est utilisée sur beaucoup de stations de travail Unix et MS-Windows, cp850 (pour OS/2), et cp437 (pour MS-DOS).

Syntaxe :

      set encoding {<valeur>}
      show encoding

Attention, les codes caractères ne sont pas supportés par tous les pilotes de terminaux ; le terminal doit être capable d'afficher les caractères non-standard.


format

Le formatage des étiquettes de graduations peut être réglé par la commande set format.

Syntaxe :

      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]


Spécificateurs de format [specif]

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

La notation "scientifique" (ou encore notation "ingénieur") utilise toujours un exposant multiple de 3. Le caractère de substitution pour la notation scientifique ("%c") est spécifique aux puissances de l'intervalle -18 à +18. Pour les nombres en dehors de cet intervalle le format passe automatiquement en exponentiel normal.

Les autres caractères spéciaux de formatage (qui viennent après le "%" mais avant le spécificateur de format) sont "-", qui justifie à gauche le nombre ; "+", qui force le signe explicite de tous les nombres ; "#", qui place un point décimal après les flottants qui ont une partie décimale nulle ; un entier positif, qui définit la largeur du champ ; "0" (zéro) précédant immédiatement la largeur de champ, qui indique que des zéros doivent être affichés à la place de blancs ; et un point décimal suivi d'un entier positif, qui définit la précision (le nombre minimal de chiffres d'un entier ou le nombre de chiffres formant la partie décimale d'un flottant).

Certaines versions de 'printf' ne supportent pas tous ces caractères spéciaux de formatage mais en supportent d'autres ; en cas de doute, voir la documentation adaptée et essayer.

Exemples :

      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)

L'affichage de nombres comme 9.999 pose problème quand le format demande simultanément l'arrondi et la puissance.

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.


Spécificateurs de date/heure [date]

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

Les formats numériques peuvent tous être précédés d'un "0" (zéro) pour compléter les champs avec des zéros, et d'un chiffre positif, pour définir la largeur de champ minimale (qui est dépassée si la largeur spécifiée n'est pas suffisante pour le nombre). La longueur de texte est limitée à 24 caractères ; les chaînes plus longues sont tronquées.

Exemples:

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"


function style (style des tracés de fonctions)

La commande set function style change le style de trait par défaut pour le tracé des fonctions.

Syntaxe :

      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.


functions (fonctions)

La commande show functions liste toutes les fonctions définies par l'utilisateur ainsi que leurs définitions.

Syntaxe :

      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


grid (quadrillage)

La commande set grid permet de dessiner un quadrillage sous le tracé.

Syntaxe :

      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

Le quadrillage peut être activé ou désactivé pour les graduations majeures et mineures sur n'importe quel axe. Le type de ligne et l'épaisseur de ligne peuvent être spécifiés pour les lignes des graduations mineures et mineures, ainsi que par un style de ligne prédéfini, tant que le pilote du terminal les supporte.

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.


hidden3d (lignes cachées)

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.


isosamples

La densité des iso-courbes pour représenter des fonctions comme des surfaces peut être modifiée par la commande set isosamples.

Syntaxe :

      set isosamples <iso_1> {,<iso_2>}
      show isosamples

Chaque tracé de fonction représentant une surface aura <iso_1> courbes iso-u et <iso_2> courbes iso-v. Si vous spécifiez uniquement <iso_1>, <iso_2> prendra la même valeur que <iso_1>. Par défaut, l'échantillonnage est fixé à 10 iso-courbes sur les axes u et v. Un taux d'échantillonnage plus élevé produira un tracé plus précis, mais prendra plus de temps. Ces paramètres n'ont aucun effet sur le tracé des fichiers de données.

Une iso-courbe est une courbe paramétrée par un seul paramètre, les autres paramètres de la surface étant fixés. Les iso-courbes fournissent un moyen simple de représenter une surface. En fixant le paramètre u de la surface s(u,v), les courbes iso-u de la forme c(v)=s(u0,v) sont produites et en fixant le paramètre v, les courbes iso-v de la forme c(u)=s(u,v0) sont produites.

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.


key (légende)

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


label (étiquette)

N'importe quelle étiquette peut être placée sur le dessin en utilisant la commande set label.

Syntaxe :

      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


linestyle (style de ligne)

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.


lmargin (marge de gauche)

La commande set lmargin fixe la taille de la marge de gauche. Reportez-vous à set margin pour plus de détails.


locale (langue par défaut)

Le paramètre locale détermine quelle langue utiliser pour afficher les jours et mois dans {x,y,z}{d,m}tics.

Syntaxe :

      set locale {"<locale>"}

<locale> peut être n'importe quelle langue que votre installation accepte. Voir la documentation de votre système pour les options convenables. La valeur par défaut est déterminée par la variable d'environnement LANG.


logscale (échelle logarithmique)

Une échelle logarithmique peut être employée sur les axes x, y, z, x2 et y2.

Syntaxe :

      set logscale <axes> <base>
      set nologscale <axes>
      show logscale

où <axes> peut être n'importe quelle combinaison de x, y, et z, dans n'importe quel ordre, ou x2 ou y2 et où <base> est la base du logarithme. Si la base n'est pas spécifiée, c'est 10 par défaut. Si <axes> n'est pas spécifié, alors tous les axes sont concernés. set nologscale désactive l'échelle logarithmique pour les axes spécifiés.

Exemples :

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


mapping (représentation)

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.


margin (marges)

Les marges calculées peuvent être écrasées par les commandes set margin. show margin montre les paramètres courants.

Syntaxe :

      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.


missing (donnée manquante)

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.


multiplot (tracé multiple)

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.


mx2tics

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.


mxtics

Les marques de graduations mineures le long de l'axe x sont contrôlées par set mxtics. Elles peuvent être désactivées par set nomxtics. Des commandes similaires contrôlent les graduations mineures le long des autres axes.

Syntaxe :

      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.


my2tics

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.


mytics

Les marques de graduations mineures le long de l'axe y sont contrôlées par la commande set mytics. Voir set mxtics.


mztics

Les marques de graduations mineures le long de l'axe z sont contrôlées par la commande set mztics. Voir set mxtics.


offsets (retraits)

Les retraits (offsets) permettent de laisser une bordure vide autour des données dans un graphe mis à l'échelle automatiquement.

Syntaxe :

      set offsets <gauche>, <droite>, <haut>, <bas>
      set nooffsets
      show offsets

Chaque offset peut être une constante ou une expression, par défaut à 0. Les retraits droite et gauche sont donnés dans la même unité que l'axe des x, les retraits haut et bas dans celle de l'axe des y. Un retrait positif élargit le graphe dans la direction spécifiée, par exemple un retrait bas positif rend ymin "plus négatif". Les retraits négatifs, bien qu'autorisés, peuvent avoir des effets inattendus sur la mise à l'échelle et le formattage (clipping) automatiques.

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.


origin (origine)

La commande set origin sert à spécifier l'origine de l'aire de tracé (le graphe et ses marges) sur l'écran. Les coordonnées sont données dans le système de coordonnées écran (voir coordonnées pour des explications sur ce système).

Syntaxe :

      set origin <origine-x>,<origine-y>


output (sortie)

Par défaut, les tracés sont affichés sur la sortie standard. La commande set output les redirige vers le fichier ou le périphérique spécifié.

Syntaxe :

      set output {"<nomfichier>"}
      show output

Le nom de fichier doit être entre guillemets. Si le nom de fichier est omis, tout fichier de sortie ouvert précédemment sera fermé et les futures sorties seront dirigées vers stdout (la sortie standard).

Les utilisateurs de MSDOS doivent noter que le caractère \ a une signification particulière dans les chaînes entre guillemets, donc des apostrophes doivent être utilisées pour spécifier un fichier avec son chemin d'accès.

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.


parametric (mode paramétrique)

La commande set parametric remplace les tracés normaux (fonctionnels) par des tracés paramétriques. La commande set noparametric restaure le style normal de tracé (graphe de fonction).

Syntaxe :

      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.


pointsize (taille des points)

La commande set pointsize règle la taille des points utilisés dans les tracés.

Syntaxe :

      set pointsize <facteur>
      show pointsize

facteur vaut 1.0 par défaut. Des points plus gros peuvent être utiles pour rendre les points plus visibles dans des graphes bitmap.

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.


polar (mode polaire)

La commande set polar change le mode de tracé dex coordonnées rectangulaires aux coordonnées polaires.

Syntaxe :

      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.


rmargin (marge droite)

La commande set rmargin règle la taille de la marge droite. Veuillez vous référer à set margin pour les détails.


rrange (intervalle en r)

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.


samples (échantillonnage)

Le taux d'échantillonnage des fonctions (ou des données interpolées) peut être changé par la commande set samples.

Syntaxe :

      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.


size (taille)

La commande set size règle la taille d'affichage du tracé.

Syntaxe :

      set size {{no}square | ratio <r> | noratio} {<ech_x>,<ech_y>}
      show size

Les valeurs <ech_x> et <ech_y> sont les facteurs d'échelle de la taille du tracé, qui inclut le graphe et les marges.

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

Démos.


style

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


boxerrorbars

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.


boxes

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.


boxxyerrorbars

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.


candlesticks

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.


dots

Le style dots trace un point minuscule pour chaque point de donnée. C'est utile pour tracer des nuages de points contenant de nombreux points.


financebars

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.


fsteps

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.


histeps

Le style histeps n'est utile que pour les tracés 2D. Il est destiné au tracé d'histogrammes. Les valeurs y sont supposées être centrées sur les valeurs x. Le point en x1 est représenté par une ligne horizontale de ((x0+x1)/2,y1) à ((x1+x2)/2,y1). Les lignes représentant les points finaux sont étendues de façon à ce que le palier soit centré sur x. Les points adjacents sont reliés par une ligne verticale à leur valeur moyenne x, c'est-à-dire de ((x1+x2)/2,y1) à ((x1+x2)/2,y2).

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.


impulses

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.


lines

Le style lines relie les points adjacents par des segments droits.


linespoints

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.


points

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.


steps

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.


vector

Le style vector dessine un vecteur de (x,y) à (x+xdelta,y+ydelta). Ainsi il nécessite quatre colonnes de données. Il dessine aussi une petite pointe de flèche à l'extrémité du vecteur.

Le style vector est encore expérimental : il n'est pas tronqué (clipped) convenablement et d'autres choses sont peut être aussi défectueuses. Utilisez-le à vos risques et périls.


xerrorbars

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).


xyerrorbars

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


yerrorbars

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.


surface

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.

Types de terminaux


terminal

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


aed767

The aed512 and aed767 terminal drivers support AED graphics terminals. The two drivers differ only in their horizontal ranges, which are 512 and 768 pixels, respectively. Their vertical range is 575 pixels. There are no options for these drivers.


aifm

Several options may be set in aifm---the Adobe Illustrator 3.0+ driver.

Syntax:

      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


amiga

The amiga terminal, for Commodore Amiga computers, allows the user to plot either to a screen (default), or, if Kickstart 3.0 or higher is installed, to a window on the current public screen. The font and its size can also be selected.

Syntax:

      set terminal amiga {screen | window} {"<fontname>"} {<fontsize>}

The default font is 8-point "topaz".

The screen option uses a virtual screen, so it is possible that the graph will be larger than the screen.


apollo

The apollo terminal driver supports the Apollo Graphics Primitive Resource with rescaling after window resizing. It has no options.

If a fixed-size window is desired, the gpr terminal may be used instead.


atari ST (via AES)

The atari terminal has options to set the character size and the screen colors.

Syntax:

      set terminal atari {<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 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).

Additionally, if an environment variable GNUCOLORS exists, its contents are interpreted as an options string, but an explicit terminal option takes precedence.


atari ST (via VDI)

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.


be

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


command-line_options

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.


monochome_options

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.


color_resources

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


grayscale_resources

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


line_resources

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


cgi

The cgi and hcgi terminal drivers support SCO CGI drivers. hcgi is for printers; the environment variable CGIPRNT must be set. cgi may be used for either a display or hardcopy; if the environment variable CGIDISP is set, then that display is used. Otherwise CGIPRNT is used.

These terminals have no options.


cgm

The cgm terminal generates a Computer Graphics Metafile. This file format is a subset of the ANSI X3.122-1986 standard entitled "Computer Graphics - Metafile for the Storage and Transfer of Picture Description Information". Several options may be set in cgm.

Syntax:

      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


font

The first part of a Computer Graphics Metafile, the metafile description, includes a font table. In the picture body, a font is designated by an index into this table. By default, this terminal generates a table with the following fonts:

      Arial
      Arial Italic
      Arial Bold
      Arial Bold Italic
      Times Roman
      Times Roman Italic
      Times Roman Bold
      Times Roman Bold Italic
      Helvetica
      Roman

Case is not distinct, but the modifiers must appear in the above order (that is, not 'Arial Italic Bold'). 'Arial Bold' is the default font.

You may also specify a font name which does not appear in the default font table. In that case, a new font table is constructed with the specified font as its only entry. You must ensure that the spelling, capitalization, and spacing of the name are appropriate for the application that will read the CGM file.


fontsize

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.


linewidth

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


rotate

The norotate option may be used to disable text rotation. For example, the CGM input filter for Word for Windows 6.0c can accept rotated text, but the DRAW editor within Word cannot. If you edit a graph (for example, to label a curve), all rotated text is restored to horizontal. The Y axis label will then extend beyond the clip boundary. With norotate, the Y axis label starts in a less attractive location, but the page can be edited without damage. The rotate option confirms the default behavior.


solid

The solid option may be used to disable dashed line styles in the plots. This is useful when color is enabled and the dashing of the lines detracts from the appearance of the plot. The dashed option confirms the default behavior, which gives a different dash pattern to each curve.


size

Default size of a CGM page is 32599 units wide and 23457 units high for landscape, or 23457 units wide by 32599 units high for portrait.


width

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


winword6

The default font table was chosen to match, where possible, the default font assignments made by the Computer Graphics Metafile input filter for Microsoft Word 6.0c, although the filter makes available only 'Arial' and 'Times Roman' fonts and their bold and/or italic variants. Other fonts such as 'Helvetica' and 'Roman' are not available. If the CGM file includes a font table, the filter mostly ignores it. However, it changes certain font assignments so that they disagree with the table. As a workaround, the winword6 option deletes the font table from the CGM file. In this case, the filter makes predictable font assignments. 'Arial Bold' is correctly assigned even with the font table present, which is one reason it was chosen as the default.

winword6 disables the color tables for a similar reason---with the color table included, Microsoft Word displays black for color 7.

Linewidths and pointsizes may be changed with set linestyle.


corel

The corel terminal driver supports CorelDraw.

Syntax:

      set terminal corel {  default
                          | {monochrome | color
                               {<fontname> {"<fontsize>" 
                                  {<xsize> <ysize> {<linewidth> }}}}}

where the fontsize and linewidth are specified in points and the sizes in inches. The defaults are monochrome, "SwitzerlandLight", 22, 8.2, 10 and 1.2.


debug

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.


svga

The svga terminal driver supports PCs with SVGA graphics. It can only be be used if it is compiled with DJGPP. Its only option is the font.

Syntax:

      set terminal svga {"<fontname>"}


dumb

The dumb terminal driver has an optional size specification and trailing linefeed control.

Syntax:

      set terminal dumb {[no]feed} {<xsize> <ysize>}

where <xsize> and <ysize> set the size of the dumb terminals. Default is 79 by 24. The last newline is printed only if feed is enabled.

Examples:

      set term dumb nofeed
      set term dumb 79 49 # VGA screen---why would anyone do that?


dxf

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.


dxy800a

This terminal driver supports the Roland DXY800A plotter. It has no options.


eepic

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}'


emxvga

The emxvga, emxvesa and vgal terminal drivers support PCs with SVGA, vesa SVGA and VGA graphics boards, respectively. They are intended to be compiled with "emx-gcc" under either DOS or OS/2. They also need VESA and SVGAKIT maintained by Johannes Martin (JMARTIN@GOOFY.ZDV.UNI-MAINZ.DE) with additions by David J. Liu (liu@phri.nyu.edu).

Syntax:

      set terminal emxvga
      set terminal emxvesa {vesa-mode}
      set terminal vgal

The only option is the vesa mode for emxvesa, which defaults to G640x480x256.


epson-180dpi

This driver supports a family of Epson printers and derivatives.

epson-180dpi and epson-60dpi are drivers for Epson LQ-style 24-pin printers with resolutions of 180 and 60 dots per inch, respectively.

epson-lx800 is a generic 9-pin driver appropriate for printers like the Epson LX-800, the Star NL-10 and NX-1000, the PROPRINTER, and so forth.

nec-cp6 is generix 24-pin driver that can be used for printers like the NEC CP6 and the Epson LQ-800.

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.

Only nec-cp6 has any options.

Syntax:

      set terminal nec-cp6 {monochrome | colour | draft}

which defaults to monochrome.

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:.


excl

The excl terminal driver supports Talaris printers such as the EXCL Laser printer and the 1590. It has no options.


hercules

These drivers supports PC monitors with autodetected graphics boards. They can be used only when compiled with Zortech C/C++. None have options.


fig

The fig terminal device generates output in the Fig graphics language.

Syntax:

      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


gif

The gif terminal driver generates output in GIF format. It uses Thomas Boutell's gd library, which is available from http://www.boutell.com/gd/

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> ...}

transparent instructs the driver to generate transparent GIFs. The first color will be the transparent one.

interlace instructs the driver to generate interlaced GIFs.

The choice of fonts is tiny (5x8 pixels), small (6x12 pixels), medium (7x13 Bold), large (8x16) or giant (9x15 pixels)

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.


unixplot

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.


gpic

The gpic terminal driver generates GPIC graphs in the Free Software Foundations's "groff" package. The default size is 5 x 3 inches. The only option is the origin, which defaults to (0,0).

Syntax:

      set terminal gpic {<x> <y>}

where x and y are in inches.

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


gpr

The gpr terminal driver supports the Apollo Graphics Primitive Resource for a fixed-size window. It has no options.

If a variable window size is desired, use the apollo terminal instead.


grass

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.


hp2648

The hp2648 terminal driver supports the Hewlett Packard HP2647 and HP2648. It has no options.


hp2623a

The hp2623a terminal driver supports the Hewlett Packard HP2623A. It has no options.


hp500c

The hp500c terminal driver supports the Hewlett Packard HP DeskJet 500c. It has options for resolution and compression.

Syntax:

      set terminal hp500c {<res>} {<comp>}

where res can be 75, 100, 150 or 300 dots per inch and comp can be "rle", or "tiff". Any other inputs are replaced by the defaults, which are 75 dpi and no compression. Rasterization at the higher resolutions may require a large amount of memory.


hpgl

The hpgl driver produces HPGL output for devices like the HP7475A plotter. There are two options which can be set---the number of pens and "eject", which tells the plotter to eject a page when done. The default is to use 6 pens and not to eject the page when done.

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.


hpljii

The hpljii terminal driver supports the HP Laserjet Series II printer. The hpdj driver supports the HP DeskJet 500 printer. These drivers allow a choice of resolutions.

Syntax:

      set terminal hpljii | hpdj {<res>}

where res may be 75, 100, 150 or 300 dots per inch; the default is 75. Rasterization at the higher resolutions may require a large amount of memory.

The hp500c terminal is similar to hpdj; hp500c additionally supports color and compression.


hppj

The hppj terminal driver supports the HP PaintJet and HP3630 printers. The only option is the choice of font.

Syntax:

      set terminal hppj {FNT5X9 | FNT9X17 | FNT13X25}

with the middle-sized font (FNT9X17) being the default.


imagen

The imagen terminal driver supports Imagen laser printers. It is capable of placing multiple graphs on a single page.

Syntax:

      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.


iris4d

The iris4d terminal driver supports Silicon Graphics IRIS 4D computers. Its only option is 8- or 24-bit color depth. The default is 8.

Syntax:

      set terminal iris4d {8 | 24}

The color depth is not really a choice -- the value appropriate for the hardware should be selected.

When using 24-bit mode, the colors can be directly specified via the file .gnuplot_iris4d that is searched in the current directory and then in the home directory specified by the HOME environment variable. This file holds RGB values for the background, border, labels and nine plotting colors, in that order. For example, here is a file containing the default colors:

      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)

This file must have exactly 12 lines of RGB triples. No empty lines are allowed, and anything after the third number on a line is ignored.


kyo

The kyo and prescribe terminal drivers support the Kyocera laser printer. The only difference between the two is that kyo uses "Helvetica" whereas prescribe uses "Courier". There are no options.


latex

The latex and emtex drivers allow two options.

Syntax:

      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}'


linux

The linux driver has no additional options to specify. It looks at the environment variable GSVGAMODE for the default mode; if not set, it uses 1024x768x256 as default mode or, if that is not possible, 640x480x16 (standard VGA).


macintosh

Several options may be set in the 'macintosh' driver.

Syntax:

     set terminal macintosh {singlewin | multiwin} {vertical | novertical}
                            {size <width>, <height> | default}

'singlewin' limits the output to a single window and is useful for animations. 'multiwin' allows multiple windows. 'vertical' is only valid under the gx option. With this option, rotated text

    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.