Ceci est une ancienne révision du document !
Gnuplot
Exemple de code:
set datafile separator ',' # set key autotitle columnhead # use the first line as title set title "title" noenhanced # noenhanced permet de ne pas traiter le titre comme du LaTeX set ylabel "Duration (s)" set xlabel "Number of workers" # set key center top set terminal pngcairo size 800,600 enhanced font 'Segoe UI,10' set output 'mpi-pipelined-all.png' # set y2tics # enable second axis # set ytics nomirror # dont show the tics on that side # set y2label "Number of iterations per second" # label for second axis set grid set xrange [3:] plot \ "1-mpi/result.csv" using 1:2 title "1 node" with linespoints, \ "2-mpi/result.csv" using 1:2 title "2 nodes (nb workers x 2)" with linespoints, \ "1-mpi/result.csv" using 1:($2/2) title "2 nodes with perfect scalability" with linespoints dashtype "--"
La colonne correspondant aux numéros de ligne dans le fichier est la colonne 0 (source).
Pour lier les points par une ligne:
set style data linespoints
Paramètres de chaque courbe:
lcsuivi d'un numéro ou du nom d'une couleur: couleur de la courbeltsuivi d'un numéro: type de pointdtsuivi d'un numéro: style de la ligne
Utilisation de scripts
Depuis un script Bash :
gnuplot <<EOF
set terminal pngcairo size 800,600 enhanced font 'Segoe UI,10'
EOF
Mettre toutes les commandes Gnuplot dans un fichier, puis :
gnuplot script.gnuplot
Lire les données depuis l'entrée standard
cat fichier | gnuplot -p -e "plot '< cat -' using 1:xtic(2) notitle;"
Échelle logarithmique
http://gnuplot.sourceforge.net/docs_4.2/node197.html
set logscale xz # active l'échelle log sur les axes x et z set logscale y 2 # active l'échelle log en base 2 sur l'axe y
Dessiner tous les fichiers d'un dossier
plot for [ f in system("ls *.csv") ] f using 1:2 title f
Changer la taille des labels d'un axe
Ne pas afficher la légende
Changer le formatage des valeurs d'un axe
Par exemple pour ne pas utiliser la notation scientifique sur l'axe des abscisses (source) :
set format x '%.f'
Statistiques
stats "result.csv" using 4 prefix "A" stats "result.csv" using 5 prefix "B" set yrange [0:1.1] plot "result.csv" using 1:($4/A_max) title columnhead(4) with linespoints, "" using 1:($5/B_max) title columnhead(5) with linespoints
Histogramme
Pour un fichier de ce style:
Thread #0 150.0 150.9 152.4 Thread #1 148.4 150.2 151.7 Thread #2 149.8 151.1 152.4 Thread #3 148.2 149.8 151.2 Thread #4 150.2 151.2 152.2 ...
set terminal pngcairo size 800,600 enhanced font 'Segoe UI,10' set output 'without-comm.png' set datafile separator '\t' set style histogram errorbars lw 1 # pour afficher les barres d'erreurs set style data histogram set style fill solid border -1 set ylabel "Duration (ms)" set xtics rotate set xrange [-0.5:] set yrange[0:140] # 3: valeur de la barre # 2: minimum pour la barre d'erreur # 4: maximum pour la barre d'erreur # xtic(1): la première colonne sera pour les labels de x plot "data-without-comm.out" using 3:2:4:xtic(1) title "Without communications"