Le Coin Wiki
d'Olivier Dalle
$WikiTagline
 

Prise en main

Dans un terminal, lancez la commande gnuplot et faîtes les exercices et questions suivants:

$ gnuplot
gnuplot>

  • Remarquez bien le prompt gnuplot > en début de ligne. C’est un repère important pour savoir si vous pouvez taper une nouvelle commande de tracé ou si vous êtes perdu ailleurs, par exemple dans l’aide.
  • familiarisez-vus avec l’aide en ligne: tapez la commande help, et faites defiler les pages jusqu’au retour du prompt gnuplot

gnuplot> help
Gnuplot is a portable command-line driven graphing utility for Linux, OS/2, MS Windows, OSX, VMS, and many other platforms. The source code is copyrighted but freely distributed (i.e., you don’t have to pay for it). It was originally…
.
.
.\\

A la fin de la première page d’aide vous obtenez la liste de tous les sujets (topics): Help topics available:

                      2D                3D                automated
    background        backwards         batch/interactive binary
    bugs              canvas            circle            colornames
    colorspec         commands          comments          complete
    coordinates       datafile          datastrings       ellipse
    enhanced          environment       examples          expressions
    fonts             gd                glossary          gnuplot
    gnuplot-defined   gprintf           help-desk         if
    image             introduction      iteration         line-editing
    linecolor         linetypes         mixing_macros_backquotes
    mouse             new-features      newhistogram      object
    plotting          pm3d              polygon           pseudocolumns
    quotes            rectangle         rgbcolor          set
    show              startup           strings           substitution
    syntax            time/date         using             while
    xticlabels
  • Consultez l’aide de la commande plot (choisissez le topic plot)

Help topic: plot

  • Essayez les commandes suivantes et expliquez ce qu’elles font:

gnuplot> plot sin(x)

gnuplot> plot sin(x) with lines

gnuplot> plot sin(x) with impulses

gnuplot> plot [-pi:pi] sin(x) with impulses

gnuplot> plot [-pi:pi] sin(x) with impulses, sin(x) with lines

gnuplot> plot [-pi:pi] sin(x) with impulses, sin(x) with lines, cos(x) with lines

gnuplot> plot [-pi:pi] sin(x) with impulses, sin(x) with lines ls 1, cos(x) with lines

gnuplot> plot [-pi:pi] sin(x) with impulses, sin(x) with lines ls 1, cos(x) with filledcurve fillstyle transparent pattern 4

gnuplot> plot [-pi:pi] sin(x) with impulses, sin(x) with lines ls 1, cos(x) w filledc fs trans pat 4

gnuplot> plot [-pi:pi] sin(x) with impulses notitle, sin(x) with lines ls 1 title “sinus”, cos(x) w filledc fs trans pat 4 title “cosinus”

Modifiez la dernière commande pour que l’affichage obtenu soit exactement identique au suivant. Utilisez au besoin la documentation.

gnuplot> plot [-pi:pi] sin(x) with impulses notitle, sin(x) with lines ls 1 title “sinus”, cos(x) w filledc fs trans pat 4 title “cosinus”, cos(x) with linespoints ls 6 notitle

Tapez les deux lignes de commande suivantes, puis rappelez la dernière commande de tracé. Quels changements observez-vous?

gnuplot> set ylabel “valeurs”

gnuplot> set xlabel “abscisse”

Utilisez la commande set title pour ajouter un titre à notre tracé.

set title “Un exemple de trace de courbes avec Gnuplot”

Tapez les deux lignes de commande suivantes, puis rappelez la dernière commande de tracé. Que se passe-t-il?

gnuplot> set terminal png

gnuplot> set output “courbe1.png”

A l’aide de votre navigateur web, ouvrez le fichier “courbe1.png”.

Travail sur des fichiers de données

Quittez gnuplot et relancez-le de facon a repartir dans la configuration initiale. Tracez la courbe sin(x) pour verifier que ca fonctionne.

Téléchargez les fichiers de données suivants dans votre répertoire de travail:

Utilisez la commande suivante:

gnuplot> plot “fichier1.dat”

Est-ce bien le résultat attendu? Lisez la documentation sur le topic using afin d’obtenir un tracé qui affiche les valeurs de la 2e colonne en abscisse et celles de la 3e colonne colonne en ordonnée.

En vous insiprant des questions précédentes et en utilisant (un peu) l’aide, reproduisez le tracé des données du fichier fichier1.dat comme dans l’image suivante:

gnuplot> set ylabel “hauteur (cm)”

gnuplot> set xlabel “time (s)”

gnuplot> set title “Un exemple de tracé de données contenues dans un fichier”

gnuplot> plot “fichier1.dat” using 2:3 with linespoints title “fichier1.dat”

Ajoutez au tracé les courbes correspondant aux données des deux autres fichiers, fichier2.dat et fichier3.dat

Testez la commande suivante:

gnuplot> plot “fichier1.dat” using 2:3 with lines title “fichier1.dat (brut)”, “fichier1.dat” using 2:3 with lines smooth bezier title “fichier1.dat (bezier)”

Expliquez la différence entre les deux courbes.

Exercice du cours

Voici le fichier de données

Reproduisez le tracé suivant (en choisissant de sauvegarder l’image au format PDF):

Quelques ressources utiles

Cas pratique

Le fichier pop-1janvier-fe-simp.xls provient du site de l’INSEE. Il donne la population totale par sexe et âge au 1er janvier 2015 en France.

L’ojectif de cet exercice est de produire une pyramide des ages telle que présentée sur la figure suivante.

La première partie du travail consiste à transformer le jeu de données intiales en un jeu de données qui convienne a gnuplot. A l’aide d’excel ou OpenOffice, on supprimera la partie superieure des données qui donne un résumé des statistiques, puis on sauvegardera dans un format texte de type CSV. Attention aux caractères spéciaux et à l’encodage des caractères, qui doit être utf-8 pour gnuplot.

La commande unix file permet d’obtenir des informations sur un fichier, et notamment son encodage.

Le commande unix iconv permet de convertir un fichier d’un encodage a un autre.

A l’issue de cette étape de préparation, vous devriez aboutir à un fichier de données tel que celui-ci (essayez de parvenir à ce résultat par vous-même).

A vous ensuite de trouver les commandes gnuplot qui permettent de produire le schéma ci-dessus.

Ceux qui auront terminé plus tot peuvent essayer de produire une pyramide verticale comme la suivante, mais c’est un peu plus compliqué (indice: se renseigner sur les tracé xerrorbars):