114 lines
3.1 KiB
TeX
114 lines
3.1 KiB
TeX
%
|
||
% 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é par une jeune stagiaire
|
||
fort sympathique avec l'aide du Tetalab\index{tetalab}.
|
||
|
||
Le fichier des données contient cinq champs séparés par des espaces
|
||
ou des tabulations.
|
||
Le premier champ 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__
|
||
\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ésultat de ce script en « pour de vrai ».}
|
||
|
||
% -------------------------------------------------------------------
|
||
|
||
\section{Paramétrer la plume}
|
||
|
||
Largeur, couleur, odeur, toussa.
|
||
|
||
% -------------------------------------------------------------------
|
||
|
||
\section{La 3D avec \texttt{splot}} \index{splot}
|
||
|
||
gnuplot> help set view
|
||
|
||
The `set view` command sets the viewing angle for `splot`s. It controls how
|
||
the 3D coordinates of the plot are mapped into the 2D screen space. It
|
||
provides controls for both rotation and scaling of the plotted data, but
|
||
supports orthographic projections only. It supports both 3D projection or
|
||
orthogonal 2D projection into a 2D plot-like map.
|
||
|
||
% -------------------------------------------------------------------
|
||
|
||
|
||
\section{Des trucs...}
|
||
|
||
Comment générer un signal carré~:
|
||
|
||
% https://lcamtuf.substack.com/p/square-waves-or-non-elephant-biology
|
||
|
||
\begin{verbatim}
|
||
set samples 2000
|
||
odd_h(x, n) = sin(x * (2*n - 1)) / (2*n - 1)
|
||
plot sum [n=1:20] 4/pi * odd_h(x, n)
|
||
\end{verbatim}
|
||
|
||
% -------------------------------------------------------------------
|
||
|
||
\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$ ?
|
||
|
||
for example \texttt{plot ’a.dat’ every 2}.
|
||
|
||
|
||
% -------------------------------------------------------------------
|
||
|
||
|
||
|