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