Xavier Olive research teaching python blog til cli

Gnuplot

23 juillet 2005

Gnuplot est un utilitaire de tracé de fonctions et de données, qui s’utilise à la ligne de commandes. Il est gratuit, léger et peut être utilisé sur de nombreuses plate-formes.

Gnuplot homepage : téléchargement, démonstrations et documentation (en anglais).

C’est comme une règle à calcul : inséparable de son maître, entre des mains habiles, il peut faire des merveilles. En effet, l’absence d’interface graphique le rend à la fois difficile à aborder et extrêmement versatile.

Gnuplot tips : not so Frequently Asked Questions, pas mal d’astuces (en anglais)

Un excellent moyen d’apprendre rapidement à s’en servir est de faire des script. À chaque utilisation, on puise sur le script précédent en y ajoutant des nouveautés et c’est l’effet boule de neige.

Carte de référence rapide : pratique, à avoir à portée de main (en anglais)

Très rapidement on est capable de produire des graphes de qualité, et on peut avoir une tendence et faire quelques calculs en un clin d’œil. Pour visualiser des fichiers de données plus importants, sa capacité à intéragir avec le shell devient un atout majeur (voir la FAQ pour l’utilisation de sed, awk et paste).

Dialoguer avec le shell

Le caractère ! permet d’envoyer une commande au shell et d’afficher le résultat sur le terminal de Gnuplot.

> !ls
fichier1.ext  fichier2.ext  [...]
!

Le caractère ` permet, d’envoyer une commande au shell et d’interpréter le résultat comme des commandes Gnuplot. Ainsi, les commandes suivantes sont-elles équivalentes :

> plot sin(x)
> `echo 'plot sin(x)'

On peut également faire des boucles for du style :

> `for i in *.dat; do echo "plot \'$i\' using (\$1):(log(\$2))"

en faisant bien attention aux différents rôles des caractères “, ‘ et $. Pour vérifier que Gnuplot fera bien ce qu’on lui demande, on peut remplacer le ` par ! et voir s’afficher ce qu’il interprétera.

Programmes qui utilisent Gnuplot

Voir aussi la page des liens du site de Gnuplot http://www.gnuplot.info/links.html