GNU Plot

L'une des plus anciennes utilisations des ordinateurs est la représentation de données sous forme graphique. Il existe sous Linux,  un outil GNU destiné à cette tâche et bien souvent inclus à la plupart des distributions : GNUPLOT.

GNUPLOT est capable de représenter aussi bien des données statistiques comme des barregraphes que des fonctions mathématiques complexes. Il a été créé à l'origine par Thomas Williams, Collin Kelley et bon nombre de contributions indépendantes et occasionnelles. L'objectif principal était, bien sûr, de créer un grapheur puissant mais aussi de le rendre le plus portable possible. Résultat, il sait gérer en sortie plusieurs dizaines de formats incluant postcript, LaTeX, HPGL, PCL, etc. Il est également disponible en version DOS, Amiga, Atari, OS/2, VMS, etc.

Il fonctionne de manière interactive par l'intermédiaire de commandes simples. De plus, il bénéficie d'une aide interactive sur sa ligne de commande.

PREMIERS PAS

Dans un premier temps, il convient de paramètrer le type de sortie que l'on désire obtenir. Pour ce faire, lancez gnuplot. Celui-ci vous accueillera sur sa ligne de commande par gnuplot> après avoir décliné sa version et d'autres informations utiles.

A ce niveau, gnuplot attend vos instructions et nous allons lui demander d'afficher directement les résultats dans une fenêtre X11. Tapez la commande set suivie du paramètre term. Gnuplot vous affichera les modes de sortie qu'il sait gérer. Parmi les derniers, vous devez trouver X11 ou x11. Saisissez donc la commande complète set term x11.

Comme vous venez de le voir, sous son aspect rébarbatif, gnuplot possède une interface très puissante. En effet, lorsqu'une commande est incomplète, il vous présentera les options possibles. Dans le cas de la commande set, il nous gratifiera d'un message " valide set option : " suivi de la listes des options. Remarquez par la même occasion qu'une pression sur la touche flèche-vers-le-haut doit vous réafficher la dernière saisie au clavier.

Si vous n'êtes pas encore dans Xwindow, quittez gnuplot par la commande exit, puis relancez-le depuis une session Xterm ou équivalent. Sur l'invite gnuplot, tapez la commande plot sin(x). Ceci provoquera l'affichage d'une nouvelle fenêtre contenant la représentation graphique du sinus de x (figure 1). A ce point, vous pouvez entrer comme argument de la commande plot n'importe quelle fonction mathématique gérée par gnuplot. Pour en connaître la liste, tapez simplement help expressions functions. Vous vous retrouverez dans le système d'aide de gnuplot où il vous suffira de tapez l'une des fonctions à l'écran pour avoir les explications utiles.

PARAMETRES AVANCES

Grilles et repères
Basons-nous sur notre sinus de x. Il est parfois utile de faire afficher une grille dans le fond du graphique. Tapez set grid puis plot sin(x) et vous verrez apparaître votre sinus avec une grille. De la même manière, il est possible d'affiner cette grille et par conséquent les repères x et y. Les commandes set xtics et set ytics permettent de définir la finesse suivant la syntaxe début, pas, fin. Si, par exemple, vous tapez set ytics 0,10, 100, vous obtiendrez un repère dans l'axe y numéroté de 0 à 100 par incrémant de 10.

Les limites
Par le terme (range), nous désignons les portées des différents axes du graphique. Par l'intermédiaire de la commande plot, il est possible de spécifier une valeur x et y maxi et mini. Mais le plus clair est encore un exemple : plot [-100:100] [-1:1] sin(x)
Le premier terme est la commande plot qui ordonne le tracé. Le premier paramètre entre crochets permet de définir un x entre -100 et 100. Le second, lui, définit y entre -1 et 1. Enfin le paramètre sin(x) est la fonction mathématique. Le résultat est donné en figure 2.

Les types de tracés
Il est possible avec gnuplot de choisir le type de dessin et sa couleur. L'option utilisée est with suivi d'un paramètre. Si vous saisissez plot sin(x) with, gnuplot vous proposera plusieurs types comme lines (lignes), points, linespoints (les deux), dots (petits points), steps (escaliers) ou encore boxes (boîtes).
Choisissez votre type de tracé en spécifiant son nom comme par exemple plot sin(x) with linespoints.
La couleur est paramétrable en plaçant simplement un chiffre à la fin de la ligne. Plot sin(x) with lines 2 vous donnera un sinus de x en lignes vertes.

Plusieurs tracés
Il est possible, grâce à la commande replot, de tracer un nouveau graphique par dessus l'ancien. Cette fonction permet de comparer plusieurs fonctions avec des tracés de différentes couleurs. La figure 3 vous donne un exemple de tracé du sinus de x et cosinus de x sur le même graphique. Notez au passage que le premier tracé prend la couleur 1 et le second automatiquement la 2. Il est important de préciser que l'utilisation de la commande replot interdit la définition de nouvelle limite, ce qui est tout à fait normal.

Légende
Tout graphique qui se respecte doit être clair et lisible. Pour ce faire, il est impératif de donner un titre au graphique et aux différents axes. La commande set title " titre en clair " permet de nommer le graphique. Les options de set, xlabel, ylabel et zlabel permettent de nommer respectivement les axes x, y, et z en le faisant suivre d'un texte entre guillemets.

GRAPHIQUE EN 3D

Non, vous ne rêvez pas, gnuplot sait parfaitement travailler dans les trois dimensions x, y, et z. La commande à utiliser dans ce cas est splot, elle accepte les mêmes paramètres que plot. Exemple la fonction x fois y, splot [-100:100] [-100:100] x * y vous donnera la figure 4.
Si vous désirez avoir une vue différente du graphique, vous devrez utiliser la commande set view suivi de 4 valeurs. Par exemple set view 40,75,1,1 vous donnera la figure 5. La syntaxe est la suivante : set view rot_x,rot_z,scale,scale_z où rot_x et rot_z sont des valeurs de rotation en degrés. Scale et scale_z sont des facteurs de grossissement (zoom) par défaut à 1.0.

GRAPHIQUES NON MATHEMATIQUES

Il est vrai qu'en dehors du domaine scolaire, il est rare d'avoir à tracer des fonctions comme sinus, cosinus, etc. Gnuplot permet également de représenter de manière graphique des informations provenant d'un tableau de valeurs.
Les valeurs à afficher doivent être contenue dans un fichier avec un format spécifique. Le fichier doit contenir des informations sur un point par ligne. Pour plot, ces informations sont x et y ; pour splot, elles sont x, y et z. De plus, il est possible d'utiliser le caractère # pour définir un commentaire qui ne sera pas considéré comme une donnée du graphique.
Exemple, le fichier population.dat contient les dates et la population de gnou en antarctique entre 1965 et 1985 :
#population de gnou en antarctique
#x y
1965 103
1970 55
1975 34
1980 24
1985 10
Par la commande plot [1960:1990] [0:110] " population.dat " with boxes, nous affichons le graphique donné en figure 6.

GNUPLOT EN MODE NON INTERACTIF

Il existe une manière différente d'utiliser gnuplot de celle décrite jusqu'à présent. Il est possible de le faire fonctionner à partir d'un fichier de commandes. Pour ce faire, il faut saisir dans ce fichier ce que vous saisiriez en mode interactif. Cette manière de travailler avec gnuplot, vous permet de rediriger la sortie dans un fichier du format choisir. Par exemple, si vous possédez une imprimante HP LaserJet II ou compatible, votre fichier de commande sera ceci :
set term hpljii 300
set title " Sinus et cosinus de x "
plot [-10:10] [-1:1] sin(x)
replot cos(x)
Vous pourrez ensuite rediriger directement la sortie de gnuplot vers l'imprimante par :
gnuplot fichier-de-commande > lp1
Vous pourrez aussi créer un fichier Postscript en spécifiant set term postscript dans le fichier de commande et en tapant gnuplot fichier-de-commande > fichier.ps sur la ligne du shell.

INFORMATIONS SUR GNUPLOT

Mis à part l'énorme aide en ligne déjà incluse à gnuplot, vous avez à votre disposition un grand nombre d'exemples sur votre disque dur. Voyez dans le répertoire /usr/lib/gnuplot/, où devrait se trouver un fichier all.dem. Tapez simplement gnuplot all.dem à partir d'une fenêtre Xterm et vous assisterez à une démonstration des capacités de ce programme.

Sur InterNet vous trouverez toutes les informations utiles, ainsi que les dernières versions des sources, binaires et doc sur http://www.cs.dartmouth.edu/gnuplot_info.html

 


© Copyright 2000 Diamond Editions/Linux magazine France - Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; A copy of the license is included in the section entitled "GNU Free Documentation License".