TetaTricks/chap/gnuplot.tex

114 lines
3.1 KiB
TeX
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

%
% 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.
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}.
% -------------------------------------------------------------------