Gnuplot, le grand-père des utilitaires de tracé (traduction)

Par yayel, le 13 mai 20133 commentaires

Ceci est une traduction de l'aricle "Gnuplot - the Grandfathe of Graphing Utilites" parru dans Linux Journal (18 février 2013) et écrit par Joey Bernard. Je reproduis donc les images telle que. J'ai également inséré des notes qui ne sont pas dans l'article de départ [entre crochets].

Dans ces colonnes, je dois couvrir plusieurs packages scientifiques différents pour faire du calcul dans différents domaines de recherche. J'ai aussi recherché plusieurs packages qui comportent une représentation graphique de ces calculs. Mais je n'avais jamais exploré gnuplot (http://www.gnuplot.info). Gnuplot existe depuis le milieu des années 80, ce qui en fait un des plus vieux traceur graphique. Comme il existe depuis si longtemps, il a été porté sur la plupart des systèmes d'exploitation que vous pouvez utiliser. Ce mois, je présente les bases des gnuplot et je montre différentes façon de m'en servir.

Gnuplot est un programme piloté par ligne de commande. Ce qui lui permet de procurer des capacités graphiques à d'autres applications, comme octave. Donc, il se peut que vous utilisiez Gnuplot sans même le réaliser. On peut utiliser Gnuplot de plusieurs manières. Il peut non seulement accepter des données à dessiner mais il peut aussi tracer des fonctions. Gnuplot peut envoyer ses résultats soit sur l'écran (dans un format de fichier statique ou en affichage interactif), soit envoyer la sortie vers l'un des grand nombre de format de fichiers. De plus, beaucoup de fonctions sont disponibles pour redéfinir vos points, changer les labels et les axes, parmi d'autres.

Commençons par installer gnuplot. Des exécutables sont disponibles pour de nombreux systèmes d'exploitation. La pluspart des distributions Linux disposent d'un package pour gnuplot, donc l'installation devrait être très facile. Si vous souhaitez les dernières et meilleurs fonctionalités, vous pouvez toujours télécharger le code source et reconstruire gnuplot de zéro.

Une fois gnuplot installé, vous pouvez le démarrer en exécutant la commande gnuplot [ou en lançant le programme wgnuplot.exe sfsfsd qui se trouve dans le dossier bin de gnuplot]. Exécuté de cette façon, vous êtes placé dans une session interactive. Commençons par essayer de dessiner une fonction de base. Vous devriez être capable de tracer toute expression mathématique qui serait accéptée en C, FORTRAN ou BASIC. Ces expressions mathématiques peut être construites avec des fonctions prédéfinies comme abs(x), cos(x) ou Bessel. Vous pouvez utiliser des types entier, réel ou complexe comme argument de ces fonctions.

Quand on utilise gnuplot pour générer un dessin, vous pouvez soit regrouper toutes les commandes dans un fichier et les envoyer à gnuplot comme un script ou vous pouvez démarrer gnuplot en mode interactif et entrer les commandes une par une. Pour exécuter un script, vous devez simplement l'ajouter à la fin de la ligne de commande quand vous exécutez gnuplot - par exemple :

gnuplot script_a_executer

Lorsque vous exécutez gnuplot en mode interactif, vous pouvez quiter votre session avec la commande quit. Les deux commandes de base sont plot et splot. plot génére une fonction simple. Pour dessiner une fonction simple, vous pouvez utiliser :

plot sin(x)/x

Ce qui ouvre une fenêtre de dessin et affiche le graphique résultant (Figure 1). Si vous voulez ajouter un titre au dessin, vous pouvez ajouter cette option à la commande :

plot sin(x)/x title "Example 1"

 

Figure 1. La commande de dessin ouvre une nouvelle fenêtre pour l'affichage.

Figure 2. Un graphique simple de sin(x)/x

Vous pouvez dessiner des expressions multiples sur la même fenêtre de dessin avec :

plot sin(x)/x title "Example 1", sin(x) title "Example 2"

Figure 3. Vous pouvez dessiner des fonctions multiples sur le même graphique.

Pour dessiner un graphique tri-dimensionel, écrivez simplement une expression avec deux variables indépendantes avec splot, comme :

splot x**2+y**2

Figure 4. Gnuplot peut aussi représenter des données en 3D.

Si vous rencontrez un problème, la première chose à faire est de regarder l'aide intégrée  des fonctions. Pour obtenir l'aide de la commande plot, exécutez la commande :

help plot

Ce qui affiche la documentation d'aide à propos de la commande plot.

Ceci est bien si vous voulez simplement voir à quoi ressemble une expression quand elle est représentée, mais pour un usage scientifique, vous collectez souvent des données qui nécessitent d'être représentées pour une analyse graphique et avoir des idées de ce qui ce passe. Gnuplot peut supporter ce type de graphique aussi. Pour ce faire, vous pouvez simplement utiliser un fichier qui contient les données à représenter. Ce fichier devrait contenir les données arrangées en colonnes, les colonnes étant séparées par une espace blanc [ou mieux, une tabulation]. Toute ligne qui commence par # est traité comme un commentaire et ignoré. Si votre fichier contient plusieurs colonne de donnée, vous pouvez sélectionner quelle colonne sera dessinée en utilisant l'option de plot ou splot. Par exemple, supposons que vous avez un fichier de données qui contient la température et la pression pour chaque jour. Vous pouvez représenter la température avec :

plot "weather.dat" using 1:2 title "Temperature"

Si vous voulez représenter le graphe de pression, vous utilisez :

plot "weather.dat" using 1:3 title "Pressure"

Si vous voulez dessiner les trois colonnes, vous pouvez utiliser :

splot "weather.dat"

Il y a deux façon de régler vos graphiques en utilisant gnuplot. La première est d'utiliser les options des commandes plot et splot. Dans ce cas, vous pouvez définir le titre du dessin, les axes ou le style. Les styles disponibles peuvent être lines, points, linespoints, impulses, dots, steps, fsteps, histeps, errorbars, xerrorbars, yerrorbars or xyerrorbars. Pour utiliser ces styles, vous pouvez inclure l'option avec le mot clé with. Donc, si vous voulez dessiner à la fois les lignes et les points sur votre graphique, vous pouvez ajouter with linspoints à votre commande plot. Vous pouvez aussi utiliser des raccourcis pour ces options. Pour with utilisez simplement w. Pour l'option titre, vous pouvez utiliser t. Pour l'option using présentée plus tôt, vous pouvez utiliser u.

La seconde option pour paramétrer vos graphiques est d'utiliser la commande set. Avec cette commande, vous pouvez librement fixer les valeurs de la plupart des options. En cette seconde possibilité, pouvez fixer toutes les options comme le titre (title), les noms des axes (xlabel et ylabel), leur intervale (xrange et yrange), xtrics ou key parmi d'autres options. Par exemple vous pouvez fixer l'intervalle de y (y-range) :

set yrange [20:500]

Après avoir fixé les options de dessin vous devez indiquer à gnuplot de redessiner le graphique sur lequel vous travaillez. Vous pouvez le faire avec la commande :

replot

La plupart de ces options utilisent aussi des raccourcis. Par exemple la version abrégée de la commande ci-dessus est :

set yr [20:500]

Gnuplot est non seulement un utilitaire pour représenter des données et des fonctions mais il peut aussi réaliser certaines analyses sur les données dessinées. Par exemple, vous pouvez réaliser de l'ajustement à une courbe de données. Pour cela, vous devez définir une fonction et ses paramètres initiaux avant d'appeler la commande fit. Par exemple :

f1=a1*tanh(x/b1)
a1=300; b1=0.005;
fit f1(x) 'data_file.dat' using 1:2 via a1,b1

Dit à Gnuplot d'essayer d'ajuster les données des colonnes 1 et 2 avec les données de du fichier data_file.dat avec la fonction définie par f1(x).

Quand vous avez défini un environnement pour une recherche particulière, vous pouvez sauvegarder tous les réglages que vous avez réalisés avec la commande save. Cette commande sauvegarde les commandes gnuplot que vous avez entrées dans un fichier texte. Ce fichier texte peut être chargé dans une nouvelle session gnuplot avec la commnande load. Ceci va reprendre toutes les commandes sauvegardées et les ré-exécuter dans la nouvelle session.

Vous pouvez toujours voir les options qui ont été fixées en utilisant la commande show. Cette commande montre les valeurs pour la session courrante. Pour voir toutes les options, utilisez la commande show all. Quand vous changez des options, il peut arriver que vous vous trouviez dans une situation inhabituelle. Rappelez vous que vous pouvez à tout moment retrouver les valeurs initiales d'aun paramètre que vous avez modifié avec set ent utilisant la commande reset qui réinitialise le paramètre à sa valeur par défaut.

Parfois vous pouvez souhaiter interagir avec la système sur lequel gnuplot est exécuté. Dans ces cas, vous pouvez avoir besoin de démarrer une session du shell à partir de gnuplot. Il y a deux façon de procéder. La première est d'utiliser la commande system. Dans ce cas, vous pouvez stocker une chaine de caractères qui contient les commandes systèmes que vous voulez exécuter. L'autre solution est d'utiliser la commmande ! (point d'exclamation). Cette commande est en fait un simple raccourci de la commande system et peut être utilisé interchangeablement.

Cet article a couvert les fonctions les plus simples disponibles dans gnuplot. Il est maintenant temps de regarder la documentation de façon plus approfondie pour voir ce qui peut être fait en plus pour l'analyse de vos données. Même si vous n'utilisez pas gnuplot directement, en apprendre plus vous aidera quand vous utiliserez d'autres applications comme octave. Prenez cet article comme un tremplin et explorez ce qui est possible en analyse des données.

Mots clés : aucun

Commentaires

#1 • Le 14 mai 2013 à 10:31, chmd a dit :

Le seul défaut de gnuplot, c'est qu'il n'est ni GNU, ni libre: c'est un freeware au code source ouvert, mais on ne peut redistribuer son code source modifié. Pour cette raison, je pense qu'il est mieux de lui préférer R.

#2 • Le 14 mai 2013 à 16:39, yayel a dit :

@chmd :
Merci pour ces précisions. Je n'avais pas saisi cette subtilité que gnuplot n'est pas gnu ni même sous licence gnu... L'histoire de son nom est expliqué ici :
http://ftp.traduc.org/doc-vf/gazette-linux/html/2009/158/lg158-A.html#id3052310

Maintenant, je suis aussi d'accord que R le surpasse nettement non seulement pour ces questions de licence mais aussi pour tous les traitements qu'on peut réaliser en R.

#3 • Le 30 avril 2014 à 11:31, tarif assurance scooter a dit :

Une bonne lecture comme je les aime

Ecrire un commentaire




Quelle est la deuxième lettre du mot eevu