La passion du libre

Débuter avec gnuplot

Cliquez sur le bouton pour afficher les conseils de lecture.Cliquez à nouveau pour les masquer

Fenêtres surgissantes explicatives

Certains mots dans le texte, affichés en vert et en gras, sont précédés d'une étoile verte sur fond orange. Par exemple, ce mot : lien.

Si vous placez le pointeur de la souris sur un tel mot, une fenêtre surgissante – popup – s'ouvre alors que l'affichage du reste du documment s'atténue. Cette fenêtre contient une explication détaillée du mot en question

Une fois que vous avez pris connaissance de ce que vous affiche cette fenêtre surgissante, vous pouvez retourner à l'état normal en cliquant ailleurs dans le document.

Navigation

Pour naviguer, utilisez le menu vertical à gauche du texte. Les entrées de menu marquées d'une petite flèche vers le bas ouvrent un sous-menu lorsqu'on clique dessus.

Vous pouvez également choisir une lecture continue en cliquant sur un des liens proposés en bas de page.

Tracés à partir de tableaux de données

Des données discrètes contenu dans un tableau peut servir à afficher des graphiques.

Les données

Les données doivent être disposées en colonnes de nombres séparées par des espaces (tabulateurs ou espaces) seulement et pas par des virgules.

Les lignes qui commencent pas un croisillon (#) sont considérées comme des commentaires et sont ignorées par la commande plot.

Si une ligne vide apparaît dans la suite de ligne, il peut y avoir un trou dans la ligne reliant les points.

Considérons le fichier de données suivant :

# Ceci est un fichier exemple
X   Hauteur       Diamètre
0              0              0    
1             10             5.1
2             20             1.01
3             24             8
4              7              9
5              8              1
5.51       43              2
6            24              6
7.5         18              3
8            12              2.5

Commande de base

Commençons par la commande plot la plus simple :

gnuplot> unset terminal         
Terminal type set to 'qt'
gnuplot> set autoscale
gnuplot> plot "data.dat"
gnuplot> 

Le résultat est le suivant :

Capture-026

Pour rendre les choses un peu plus visible  ajoutons un style de ligne :

gnuplot> plot "data.dat" w linespoints

Capture-027

Nous observons que :

  • la première ligne qui contient uniquement des textes est ignorée ; nous verrons comment utiliser ces entêtes de colonnes plus bas
  • la première colonne a été utilisée en tant que valeur x
  • seule la deuxième colonne a été utilisée pour valeur de y. La troisième n'est pas utilisée dans ce cas de commande élémentaire.

Commande avec options

Sélection de la colonne et tracé multiples

Nous pouvons utiliser la troisième colonne en tant que valeur de y en utilisant l'option using :

gnuplot> gnuplot> set autoscale
gnuplot> plot "data.dat" u 1:3 w linespoints
gnuplot> 

Capture-028

Nous pourrions utiliser toutes les colonnes :

gnuplot> set autoscale
gnuplot> plot "data.dat" u 1:2 w linespoints, \
>"data.dat" u 1:3 w linespoints
gnuplot> 

Capture-029

Utilisation de la ligne d'entêtes

Pour utiliser les entêtes de colonne (première ligne), on utilise l'option title columnheader(<numéro>) dans laquelle <numéro> est le numéro de la colonne sélectionnée.

Voici un exemple :

gnuplot> plot "data.dat" u 1:2 title columnheader(2) w linespoints,\
>"data.dat" u 1:3 title columnheader(3) w linespoints
gnuplot> 

Capture-030

Utilisation de plusieurs jeux d'axes

Comme nous le voyons dans l'image précédente, lorsque l'on représente deux courbes sur le même graphique, il peut exister de grosses différences dans les échelles. Dans un tel cas, il serait bon de pouvoir utiliser une échelle différente pour la deuxième courbe.

Pour cela, gnuplot met à votre disposition 4 jeux d'axes dans lesquels représenter les courbes :

  • x1y1 horizontal bas pour x et vertical gauche pour y
  • x1y2 horizontal bas pour x et vertical droit pour y
  • x2y1 horizontal haut pour x et vertical gauche pour y
  • x2y2 horizontal haut pour x et vertical droit pour y

L'utilisation de l'un des jeux axes se fait en utilisant l'option axes <xy> dans laquelle <xy> est à remplacer par le jeu d'axes choisi.

Pour mieux représenter les courbes de l'image précédente, nous allons représenter le diamètre dans les axes xy2 sur lesquels nous aurons défini la plage de visibilité de 0 à 10.

gnuplot> set xrange [0:8]                                              
gnuplot> set yrange [0:45]                                                    
gnuplot> set y2range [0:10]                                                   
gnuplot> plot "data.dat" u 1:2 title columnheader(2) w linespoints,\          
>"data.dat" u 1:3 axes x1y2 title columnheader(3) w linespoints
gnuplot> 

Capture-031

Comme nous pouvons le constater, la deuxième courbe (diamètre) est nettement plus lisible. Cependant, il manque encore l'affichage de la graduation sur l'axe y2.

Graduation des axes

Pour faire apparaître les graduations sur les axes, il faut utiliser la commande set <axe>tics dans laquelle <axe> est l'axe sur lequel on désire voir la graduation. Dans sa forme la plus simple cette commande ne prend pas d'options, il existe cependant de nombreuses options concernant le placement de la graduation, son orientation, la manière dont elle est élaborée etc. Nous reviendrons spécialement sur cette commande plus loin lorsque nous étudierons les différentes commandes en détail.

Dans notre exemple précédent, il nous suffit d'ajouter set y2tics à la liste des commandes, comme ceci :

gnuplot> set xrange [0:8]                                                     
gnuplot> set yrange [0:45]                                                    
gnuplot> set y2range [0:10]                                            
gnuplot> set y2tics         
gnuplot> plot "data.dat" u 1:2 title columnheader(2) w linespoints,\   
>"data.dat" u 1:3 axes x1y2 title columnheader(3) w linespoints
gnuplot> 

Capture-032

On remarquera ici que la graduation des axes de base x1 et y1 est implicite – elle n'exige pas de commande particulière. De plus elle est faite en nombre entiers de manière régulière indépendamment des valeurs de la colonne 1.

Si nous désirons que les valeurs de la colonne 1 soient utilisées comme marques de la graduation de l'axe x, nous devons le préciser dans l'option using avec xticslabel(1) comme suit :

gnuplot> plot "data2.dat" u 1:2:xticlabel(1) title columnheader(2) w linespoints,\
>"data2.dat" u 1:3 axes x1y2 title columnheader(3) w linespoints          
gnuplot> 

En supposant que les autres réglages n'ont pas été changé et que le fichier des données est maintenant le suivant :

# Ceci est un fichier exemple
X  Hauteur       Diamètre
0              0              0    
10            10              5.1
24             20              1.01
32            24              8
44             7              9
62              8              1
65         43              2
69             24              6
75           18              3
80             12              2.5

nous obtiendrons le résultat suivant :

Capture-033