Présentation de Gnuplot

Un logiciel de tracé de courbes, simple et puissant

Gnuplot est un logiciel "libre", permettant de tracer très rapidement des courbes à partir d'une équation, ou bien de relevés de mesures, telle qu'une simulation en fournit. Le maniement de gnuplot nécessite de maîtriser deux commandes, la commande plot et la commande set . Si on y ajoute la commande help, qui fournit des informations sur les options possibles), on a un tour d'horizon assez complet, qui satisfera pour longtemps les besoins de l'utilisateur moyen (noter que help ne donne pas accès à un "vrai" manuel d'apprentissage).

Ce court manuel constitue une introduction aux notions de base, permettant d'utiliser le logiciel et d'en saisir la puissance.

Convention: dans la suite, les caractères "courier new" gras indiquent les mots clés gnuplot; les données ou paramètres entrés par l'utilisateur sont indiqués en "courier new" de graisse ordinaire.
 


Sommaire de cette courte présentation

La commande plot

La commande set

Comment lancer gnuplot ?

Comment se procurer gnuplot ?


La commande plot

Imaginons que nous voulions tracer une série de courbes, par exemple x2 et x2 + 12x sin(x1/2).

Une fois gnuplot lancé, tapons:

plot x**2, x**2+12*x*sin(sqrt(x))

Le logiciel calcule et affiche quelque chose ressemblant à la figure ci-dessus. Tous les éléments de la figure (les axes, les légendes, les titres, les marques d'unités, etc.) sont modifiables à souhait -- c'est le rôle de la commande set, aux arguments multiples.

Pour tracer une courbe, non à partir d'une formule mathématique mais de résultats de mesure, le mode d'emploi de gnuplot est tout aussi simple. Les données à traiter sont dans un fichier texte ordinaire. Par exemple, le fichier se nommera 'toto.txt' et il pourra avoir l'allure suivante:

# fichier 'toto.txt'
#
#                   Données d'entrée
#
# Charge    p1            p2            p3
#
    .00      10.000       1.000      10.000
    .05       9.550       1.042       9.953
    .10       9.100       1.088       9.901
    .15       8.650       1.138       9.844
    .20       8.200       1.193       9.780
    .25       7.750       1.253       9.710
    .30       7.300       1.319       9.630
    .35       6.850       1.393       9.540
    .40       6.400       1.475       9.438
    .45       5.950       1.566       9.319
    .50       5.500       1.669       9.182
    .55       5.050       1.786       9.020
    .60       4.600       1.919       8.826
    .65       4.150       2.070       8.590
    .70       3.700       2.243       8.297
    .75       3.250       2.438       7.923
    .80       2.800       2.653       7.429
    .85       2.350       2.870       6.745
    .90       1.900       3.019       5.737
    .95       1.450       2.830       4.103
   1.00      1.000       1.000       1.000

Noter l'usage des '#' qui introduisent une ligne de commentaires, ignorée de gnuplot. Le format d'entrée des données est libre: la commande va détecter les colonnes par les espaces qui les séparent - même si elles ne sont pas alignées.


Imaginons que la variable de commande soit donnée par la première colonne, et soit à visualiser les variations de p1 et p3 (colonnes 2 et 4). La commande s'écrira

plot "toto.txt" using 1:2 with lines,\
     "toto.txt" using 1:4 with lines

Le résultat sera quelque chose comme cela:


La commande set

La commande set est très riche. Elle permet de régler l'allure du dessin, et aussi de choisir la cible dans laquelle on va le placer. Voici une liste des principales options que set permet de déployer.
 

Pour donner un titre aux axes

On écrira

set xlabel "titre de l'axe des x"
set ylabel "titre de l'axes des y"
 

Pour utiliser des coordonnées logarithmiques

On employera la commande

set logscale y (ou x)

On supprimera cette option par le

set nologscale y

Pour supprimer les 'keys'

Les 'keys' sont les indications permettant de savoir quelle courbe est tracée. Dans le graphique ci-dessus, "toto.txt" using 1:2 est le 'key' d'une des deux courbes. Pour les supprimer,

set nokey

Pour placer des 'labels'

Les 'keys' sont en général des indications peu adaptées. Je leur préfère généralement les 'labels', qui permettent de mieux personnaliser le dessin et d'en rendre la lecture plus aisée. Le label est un texte, que l'on peut placer où on le désire. On écrira

set label "courbe 1" at x, y

ce qui écrira le texte entre guillements à l'emplacement repéré par (x, y) - dans les coordonnées des axes. On peut placer autant de labels qu'on le désire. Pour les supprimer tous, on écrit simplement

set nolabel

Pour choisir l'étendue du tracé

Gnuplot interprète les données et choisit l'étendue des axes en fonction des valeurs. On peut cependant forcer l'étendue par une commande

set xrange [a:b]

qui limite le tracé. Ceci sera utile pour provoquer un 'zoom' sur une partie intéressante. Cela permet aussi de supprimer des valeurs nulles avec des coordonnées logarithmiques.

Commandes diverses

Pour quadriller le tracé, on fera
set grid
set nogrid le supprimera
 

Comment sauvegarder le graphique ?

L'utilisation des commandes précédentes permet de visualiser le graphique. Pour l'insérer dans un document, il faut le sauver dans un format adapté. Le plus simple est de sauvegarder le dessin sous un format postscript. Pour cela, on sélectionne un type de terminal, un fichier qui contiendra la figure, éventuellement une dimension, et on redessine:

set term postscript portrait
set output "mondessin.ps"
set size 0.7, 0.7
replot

L'option "portrait" sauve sous le format vertical habituel, on peut aussi spécifier "landscape" (option par défaut).

Pour obtenir de l'aide

De façon générale, la commande "help" permet de naviguer dans les nombreuses rubriques de l'aide en ligne. En particulier, elle est utile pour le "set". Par exemple:

Help set

Donne la liste de toutes les options disponibles. Cela permet de raffiner sa recherche:

Help set terminal

Un exemple

Reprenons l'exemple du tracé des courbes algébriques. Ajoutons une grille, des légendes sur les axes, et modifions l'étendue du tracé. Ensuite, si le dessin nous plait, sauvegardons-le sous un format postscript. Nous avons, au préalable, lancé, sous Unix par exemple, la commande gnuplot. A l'invite, on entrera:

set logscale y
set xlabel 'Valeur de x'
set ylabel 'Grandeur à calculer'
set yrange [1:10000]
set grid
set nokey
set label
"Reference" at 20,1000
set label "Mesures" at 20,100
plot x**2, x**2+12*x*sin(sqrt(x))

pause -1

set term postscript portrait
set output "mondessin.ps"
set size 0.7, 0.7
replot

La commande pause -1 immobilise l'exécution, il faut taper "enter" pour continuer. L'ordre des commandes importe peu (le plot doit évidemment arriver en dernier!). On va avoir une courbe qui ressemblera au graphe suivant.


Comment lancer gnuplot ?

Lorsqu'on travaille sur une station Unix, on peut appeler le logiciel en tapant simplement 'gnuplot'. Une invite permet alors d'entrer ses commandes à la suite. On peut entrer des commandes, visualiser, corriger cetraines options et relancer le dessin par un simple replot.

On peut aussi entrer ces commandes dans un fichier et lancer par

gnuplot "Nom_de_Fichier"

ce qui permet de corriger plus simplement, sans avoir à retaper toute la suite des instructions.

Comment se procurer gnuplot ?

Le logiciel est normalement présent sur toutes les machines Unix. Il existe des versions Linux, et des versions Windows. A titre indicatif, le volume nécessaire à son installation sur Windows 98 est de l'ordre de 2.5 Mégaoctets.

On peut se procurer les fichiers d'installation sur la plupart des sites qui offrent les distributions classiques des logiciels libres. En France, par exemple, sur le site de l'IRISA

voir aussi
ftp://ftp.darmouth.edu/pub/gnuplot
ftp://ftp.gnuplot.vt.edu/pub/gnuplot

On peut aussi consulter le site "officiel" de gnuplot, qui se trouve à l'adresse:
http://www.gnuplot.info

Des informations (et en particulier un manuel complet) sont disponibles sur

http://www.cs.darmouth.edu/gnuplot/gnuplot.html