% % nouveau 27 septembre 2020 % \chapter{Gnuplot} \index{Gnuplot}\label{chap:gnuplot} Gnuplot - an interactive plotting program There is an on-line demo collection at http://gnuplot.info/demo \begin{verbatim} gnuplot> splot "cam.indoor" using 2:4:3, "cam.indoor" using 5:7:6 \end{verbatim} % ------------------------------------------------------------------- \section{Exemple : le phytotron} \index{phytotron} Un exemple réel, issu d'un projet d'élevage d'algues bio-luminescentes dans un frigo bricolé. Le fichier des données contient cinq champs séparés par des blancs. Le premier est un \textsl{timestamp} exprimé en secondes depuis l'\textsl{epoch}, et les quatre suivants sont des températures en degrés Celsius. \begin{verbatim} #!/bin/bash # THIS IS A KLUDGE nbsamp=3000 # nombre d'echantillon if [ $# -eq 1 ]; then nbsamp=$1 fi DATAFILE="serial/foo.dat" IMAGE="graphe.png" TMPFILE="/dev/shm/tmpdata" tail -${nbsamp} < ${DATAFILE} > ${TMPFILE} gnuplot << __EOC__ set term png size 1600,800 set output "${IMAGE}" set ytics 2 set xtics set grid front set title "* Temperatures du Phytotron *" set xdata time set timefmt "%s" set format x "%b %d\n%H:%M" set yrange [ 10.0 : 40.0 ] plot "${TMPFILE}" using 1:3 title " inside" with lines, \ "${TMPFILE}" using 1:4 title "ambient" with lines __EOC__ display ${IMAGE} & \end{verbatim} \textsf{Bon, un de ces jours, il faudrait que je ressorte des archives l'enregistrement d'un été dans le dd2, pour que vous puissiez voir le résulate de ce script en « pour de vrai ».} % ------------------------------------------------------------------- \section{Questions} Supposons que nous ayons sous le coude un fichier contenant \emph{six cent mille} lignes de données, qui ne représentent que trente secondes d'enregistrement d'une valeur de Virgo\index{Virgo}, comment faire pour plotter les échantillons $N$ à $N+42$ ? % -------------------------------------------------------------------