Projet Scientifique Informatique
Licence2 Informatique :
Olivier Dalle
Universit´e Nice Sophia Antipolis
February 11, 2013
Trac´e de courbes avec GnuPlot
Plan
1 Mode de fonctionnement
2 Instructions
3 M´ethode
Ressources
+
GNUPlot
trac´e instructions
Trac´e Donn´ees
Fonctions
Entr´ ees/Sorties
GNUPlot
Mode Interactif Mode Batch
(scripts)
trac´e instructions
Trac´e Donn´ees
Entr´ ees/Sorties
terminal
GNUPlot
Mode Interactif
+
peripherique
fichier trac´e
instructions
Trac´e Donn´ees
Fonctions
Entr´ ees/Sorties
GNUPlot
Mode Interactif Mode Batch
(scripts)
Mode Interactif
peripherique terminal trac´e
instructions
Trac´e Donn´ees
Anatomie d’un trac´ e
Anatomie d’un trac´ e
Mode de fonctionnement Instructions M´ethode
Types d’instructions
Trop d’instructions pour un seul cours!
Configuration: sortie, axes, titre. . .
Trac´e: 2D, 3D, avec ligne, croix, barres. . .
D´ecorations: ajouter un texte, une fl`eche, un cercle. . .
Types d’instructions
Trop d’instructions pour un seul cours!
Configuration: sortie, axes, titre. . .
Trac´e: 2D, 3D, avec ligne, croix, barres. . .
D´ecorations: ajouter un texte, une fl`eche, un cercle. . . Voir d´emos surhttp://gnuplot.sourceforge.net/demo/. . .
Instructions de Configuration
Quelques instructions `a connaˆıtre:
Produire un fichier image (ici png) set terminal png
set output ’fichier1.png’
Passer en mode multiplot (ici: 2x2 plots)set multiplot layout 2,2
Passer en mode Param´etrique set parametric
Ajouter un titre, legendes abcisses et ordonn´ees set title ’Titre du trac´e’
set xlabel ’titre des x’
set ylabel ’titre des y’
Instructions de Configuration
Revenir `a l’´etat initial?
instruction unset:
unset parametric
Revenir au terminal initial ... ??
Avant de commencer: show terminal
→ x11 sur linux, aqua sur MAC . . . Quitter/red´emarrer!
Instructions de Trac´ e
L’instruction `a connaˆıtre: plot
p l o t {< r a n g e s >}
{< i t e r a t i o n >}
{< f u n c t i o n > | {"< d a t a f i l e >" { d a t a f i l e - m o d i f i e r s }}}
{ a x e s < a x e s >} {< title - s p e c >} { w i t h < s t y l e >}
{ , { d e f i n i t i o n s { ,}} < f u n c t i o n > . . . }
Exemple de trac´ e
fonction
plot sin(x)
Exemple de trac´ e
fonction
plot sin(x)
Exemple de trac´ e
fonction
plot [-20:20] sin(x)
Exemple de trac´ e
fonction
plot [-20:20] sin(x)
Exemple de trac´ e
fonction
plot [-20:20] sin(x) with linespoints
Exemple de trac´ e
fonction
plot [-20:20] sin(x) with linespoints
Exemple de trac´ e
fonction
plot [-20:20] sin(x) with linespoints title "sinus"
Exemple de trac´ e
fonction
plot [-20:20] sin(x) with linespoints title "sinus"
Exemple de trac´ e
fonction
set title "un exemple de courbe"
plot [-20:20] sin(x) with linespoints title "sinus"
Exemple de trac´ e
fonction
set title "un exemple de courbe"
plot [-20:20] sin(x) with linespoints title "sinus"
Exemple de trac´ e
fonction
set title "un exemple de courbe"
plot [-20:20] sin(x) with linespoints title "sinus", 100*cos(x)
Exemple de trac´ e
fonction
set title "un exemple de courbe"
plot [-20:20] sin(x) with linespoints title "sinus", 100*cos(x)
Exemple de trac´ e
fonction
set title "un exemple de courbe"
plot [-20:20] sin(x) with linespoints title "sinus", 100*cos(x) axes x1y2
Exemple de trac´ e
fonction
set title "un exemple de courbe"
plot [-20:20] sin(x) with linespoints title "sinus", 100*cos(x) axes x1y2
Exemple de trac´ e
fonction
set title "un exemple de courbe"
set y2tics
plot [-20:20] sin(x) with linespoints title "sinus", 100*cos(x) axes x1y2
Exemple de trac´ e
fonction
set title "un exemple de courbe"
set y2tics
plot [-20:20] sin(x) with linespoints title "sinus", 100*cos(x) axes x1y2
Exemple de trac´ e
fonction
set title "un exemple de courbe"
set y2tics
set xlabel "Distance (cm)"
set ylabel "Vitesse (m/s)"
plot [-20:20] sin(x) with linespoints title "sinus", 100*cos(x) axes x1y2
Exemple de trac´ e
fonction
set title "un exemple de courbe"
set y2tics
set xlabel "Distance (cm)"
set ylabel "Vitesse (m/s)"
plot [-20:20] sin(x) with linespoints title "sinus", 100*cos(x) axes x1y2
Exemple de trac´ e
Donn´ees brutes (´echantillons)
plot "fichier1.dat" using 2:3 with lines title
"fichier1.dat"
Exemple de trac´ e
Donn´ees brutes (´echantillons)
plot "fichier1.dat" using 2:3 with lines title
"fichier1.dat"
Exemple de trac´ e
Donn´ees brutes (´echantillons) + lissage bezier
plot "fichier1.dat" using 2:3 with lines title
"fichier1.dat", "fichier1.dat" using 2:3 smooth bezier with lines title "lissage bezier"
Exemple de trac´ e
Donn´ees brutes (´echantillons) + lissage bezier
plot "fichier1.dat" using 2:3 with lines title
"fichier1.dat", "fichier1.dat" using 2:3 smooth bezier with lines title "lissage bezier"
Mode de fonctionnement Instructions M´ethode
Pour ne pas perdre de temps. . .
1 Experimentation interactive
set y2tics
set xlabel "Distance (cm)" set ylabel "Vitesse (m/s)"
plot [-20:20] sin(x) with linespoints title
"sinus", 100*cos(x) axes x1y2
2 Sauvegarde instructions dans un script Copier/coller dans un fichier
3 Ajout des instructions pour sauver dans un fichier: set terminal png
set output "./sin1.png"
Mode de fonctionnement Instructions M´ethode
Pour ne pas perdre de temps. . .
1 Experimentation interactive
set title "un exemple de courbe"
set y2tics
set xlabel "Distance (cm)"
set ylabel "Vitesse (m/s)"
plot [-20:20] sin(x) with linespoints title
"sinus", 100*cos(x) axes x1y2
Copier/coller dans un fichier
3 Ajout des instructions pour sauver dans un fichier: set terminal png
set output "./sin1.png"
Mode de fonctionnement Instructions M´ethode
Pour ne pas perdre de temps. . .
1 Experimentation interactive
set title "un exemple de courbe"
set y2tics
set xlabel "Distance (cm)"
set ylabel "Vitesse (m/s)"
plot [-20:20] sin(x) with linespoints title
"sinus", 100*cos(x) axes x1y2
2 Sauvegarde instructions dans un script Copier/coller dans un fichier
set terminal png
set output "./sin1.png"
Pour ne pas perdre de temps. . .
1 Experimentation interactive
set title "un exemple de courbe"
set y2tics
set xlabel "Distance (cm)"
set ylabel "Vitesse (m/s)"
plot [-20:20] sin(x) with linespoints title
"sinus", 100*cos(x) axes x1y2
2 Sauvegarde instructions dans un script Copier/coller dans un fichier
3 Ajout des instructions pour sauver dans un fichier:
set terminal png
set output "./sin1.png"
Exemple: script utilis´ e pour ces transparents
set t e r m i n a l png
set o u t p u t "./ s i n 1 . png "
p l o t sin ( x )
set o u t p u t "./ s i n 2 . png "
p l o t [ - 2 0 : 2 0 ] sin ( x ) set o u t p u t "./ s i n 3 . png "
p l o t [ - 2 0 : 2 0 ] sin ( x ) w i t h l i n e s p o i n t s set o u t p u t "./ s i n 4 . png "
p l o t [ - 2 0 : 2 0 ] sin ( x ) w i t h l i n e s p o i n t s t i t l e " s i n u s "
.
Mode de fonctionnement Instructions M´ethode
Pr´ eparation des donn´ ees
Certains trac´es requi`erent un peu de pr´eparation...
( x , y , y d e l t a ) ( x , y , ylow , y h i g h ) ( x , y , x d e l t a ) ( x , y , xlow , x h i g h ) ( x , y , xdelta , y d e l t a )
( x , y , xlow , xhigh , ylow , y h i g h ).
Mode de fonctionnement Instructions M´ethode
Pr´ eparation des donn´ ees
Certains trac´es requi`erent un peu de pr´eparation...
Exemple: plot errorbars (utilisent 3 `a 6 colonnes)
( x , y , x d e l t a ) ( x , y , xlow , x h i g h ) ( x , y , xdelta , y d e l t a )
( x , y , xlow , xhigh , ylow , y h i g h ).
Pr´ eparation des donn´ ees
Certains trac´es requi`erent un peu de pr´eparation...
Exemple: plot errorbars (utilisent 3 `a 6 colonnes)
( x , y , y d e l t a ) ( x , y , ylow , y h i g h ) ( x , y , x d e l t a ) ( x , y , xlow , x h i g h ) ( x , y , xdelta , y d e l t a )
( x , y , xlow , xhigh , ylow , y h i g h ).
Mode de fonctionnement Instructions M´ethode
Pr´ eparation des donn´ ees
Soit la pr´eparation se fait en interne:
p l o t ’ file ’ u s i n g 1 : 2 : ( $1 - $3 ):( $1 + $3 ) : 4 : 5 w i t h x y e r r o r b a r s
Pr´ eparation des donn´ ees
Soit la pr´eparation se fait en interne:
p l o t ’ file ’ w i t h e r r o r b a r s
p l o t ’ file ’ u s i n g 1 : 2 : ( s q r t ( $1 )) w i t h x e r r o r b a r s
p l o t ’ file ’ u s i n g 1 : 2 : ( $1 - $3 ):( $1 + $3 ) : 4 : 5 w i t h x y e r r o r b a r s
Mode de fonctionnement Instructions M´ethode
Pr´ eparation des donn´ ees
Soit on utilise des commandes externes:
Commandes unix. Par exemple join join fichier1.dat fichier2.dat
join fichier1.dat fichier2.dat | join - fichier3.dat. . .
python3.2 mergecols.py -sort -skipfirst
data1.dat:1 data1.dat:2 data2.dat:2 data3.dat:2
→ fusionne les colonnes 1 et 2 du fichier data1.dat avec les colonnes 2 des fichiers data2.dat et data3.dat et tri les donn´ees sur chaque ligne de la sortie en partant de la 2e colonne
Pr´ eparation des donn´ ees
Soit on utilise des commandes externes:
Commandes unix. Par exemple join join fichier1.dat fichier2.dat
join fichier1.dat fichier2.dat | join - fichier3.dat. . .
scripts ”maison”. Exemple: script mergecols.py (fourni en TP) python3.2 mergecols.py -sort -skipfirst
data1.dat:1 data1.dat:2 data2.dat:2 data3.dat:2
→ fusionne les colonnes 1 et 2 du fichier data1.dat avec les colonnes 2 des fichiers data2.dat et data3.dat et tri les donn´ees sur chaque ligne de la sortie en partant de la 2e colonne