Comment utiliser Gnuplot pour représenter graphiquement des données sur le Raspberry Pi

Comment utiliser Gnuplot pour représenter graphiquement des données sur le Raspberry Pi

J’ai récemment testé un capteur qui avait besoin d’être étalonné. Cela impliquait de tracer certaines données et de faire quelques ajustements en fonction du graphique résultant. En tant qu’utilisateur Windows, c’est une tâche que j’effectuerais normalement dans Microsoft Excel ou LibreOffice Calc.

Dans ce cas, j’ai décidé d’essayer de le faire sur le Pi étant donné que je travaillais déjà dans l’environnement LXDE. Pourrais-je faire des tracés simples sans être frustré par des tonnes de syntaxe de ligne de commande obscure ?

Exemple de graphique gnuplotLa réponse était oui et est venue sous la forme de « gnuplot », un utilitaire graphique piloté par ligne de commande. Il a beaucoup d’options mais cela ne prend que cinq minutes pour maîtriser les bases.

Ce didacticiel ne fait qu’effleurer la surface mais vise à fournir une référence rapide pour créer des graphiques à partir d’ensembles de données simples.

Installer gnuplot

Pour installer gnuplot sur le Raspberry Pi utilisez la commande suivante :

sudo apt-get install gnuplot-x11

Vous devrez peut-être répondre « O » si vous y êtes invité.

Générer des exemples de données

Pour faire les exemples de tracés, j’avais besoin de données de test. Voici un script Python simple pour créer des données de test. Il crée un fichier texte brut appelé « mydata.dat ». Chaque ligne contient un ensemble de points de données où chaque nombre est séparé par un espace.

#!/usr/bin/python
import math
f = open('mydata.dat', 'w')
# Loop
for degrees in range(720):
  # Generate three data points
  si = math.sin(math.radians(degrees))
  co = 0.5 * math.cos(math.radians(degrees))
  if si>0:
    sq = 0.6
  else:
    sq = -0.6
  # Write 3 data points to text file
  data = "{} {} {} {}n".format(degrees,si,co,sq)
  f.write(data)
f.close()

Vous pouvez télécharger ce script directement sur votre Pi en utilisant :

wget https://bitbucket.org/MattHawkinsUK/rpispy-misc/raw/master/gnuplot/gnuplot_generate_data.py

Exécutez-le en utilisant :

python gnuplot_generate_data.py

Le script créera « mydata.dat » et le contenu ressemblera un peu à ceci :

0 0.00 0.50 -0.60
1 0.02 0.50 0.60
2 0.03 0.50 0.60
3 0.05 0.50 0.60
4 0.07 0.50 0.60
5 0.09 0.50 0.60
6 0.10 0.50 0.60
7 0.12 0.50 0.60
8 0.14 0.50 0.60
9 0.16 0.49 0.60
10 0.17 0.49 0.60
....

La première colonne est juste une séquence de nombres. Les trois autres colonnes sont nos données. Si vous tracez la température, vous n’aurez peut-être qu’une seule colonne de données. J’en ai utilisé trois pour ce tutoriel pour rendre les exemples de tracés un peu plus intéressants.

Tracer les données

Si vous n’avez pas encore lancé l’environnement graphique en tapant :

startx

Vous pouvez lancer gnuplot en tapant « gnuplot » dans une fenêtre de terminal ou en utilisant le raccourci sous XXXXXX. Vous serez présenté avec une invite de commande en attente de vos instructions.

Pour tracer des données, vous pouvez entrer :

plot "mydata.dat"

Cela ne trace que les données de la 2ème colonne. Pour tracer les deux autres ensembles vous pouvez taper :

plot "mydata.dat" using 1:2, "mydata.dat" using 1:3, "mydata.dat" using 1:4

Cela indique à gnuplot de tracer trois ensembles de données en utilisant les colonnes 2, 3 et 4.

Exemple de graphique gnuplot

La plupart des personnalisations que vous pouvez apporter à votre graphique sont soit effectuées en ajoutant des paramètres à la commande « plot » soit en émettant des commandes « définir ».

Définition d’un titre de tracé et d’étiquettes d’axe

Pour changer le titre du tracé, vous pouvez taper la commande suivante :

set title "Example Plot"

Pour changer les étiquettes de données, vous pouvez modifier votre commande plot :

plot "mydata.dat" using 1:2 title "Sin", "mydata.dat" using 1:3 title "Cos"

Cela peut être abrégé en :

plot "mydata.dat" u 1:2 t "Sin", "mydata.dat" u 1:3 t "Cos"

Pour changer les étiquettes des axes, vous pouvez utiliser les commandes suivantes :

set xlabel "Minutes (mins)"
set ylabel "Temperature (degrees)"

Exemple de graphique gnuplot

Lignes et points

Vous pouvez également modifier la façon dont les points de données sont représentés sur le graphique. Par défaut, les points sont utilisés. Vous pouvez changer le style en « lines » ou « linespoints » en utilisant le mot-clé « with » :

plot "mydata.dat" u 1:2 t "Sin", "mydata.dat" u 1:4 t "Square" with lines

Cela rend l’onde carrée plus belle.

Exemple de graphique gnuplot

Couleurs

Il est facile de changer la couleur de vos données. Il suffit d’utiliser le paramètre « lt » :

plot "mydata.dat" using 1:2 lt rgb "blue", "mydata.dat" using 1:3 lt rgb "violet"

Exemple de graphique gnuplot

Vous pouvez utiliser une gamme de couleurs comprenant le noir, le rouge, le vert, le bleu, le magenta, le cyan, le marron et le rouge clair.

Personnalisation de l’échelle de l’axe

Par défaut, l’axe sera mis à l’échelle automatiquement. La plupart du temps, c’est bien, mais vous voudrez peut-être modifier les valeurs des axes pour le rendre un peu plus joli. Vous pouvez soit utiliser :

set yrange [-1.5:-1.5]

ou modifiez votre commande plot :

plot [] [-1.5:1.5] "mydata.dat" u 1:2 t "Sine", "mydata.dat" u 1:3 t "Cosine"

Dans notre exemple, nous avons modifié l’axe des y et cela nous donnerait un tracé comme celui-ci :

Exemple de graphique gnuplot

Vous pouvez réinitialiser la mise à l’échelle automatique de l’axe avec « set autoscale ».

Voici un dernier exemple :

plot [] [-1.5:1.5] "mydata.dat" u 1:2 t "Sine" with lines lw 2, "mydata.dat" u 1:3 t "Cosine" with lines lw 2, "mydata.dat" u 1:4 t "Square" with lines lw 2

Dans ce dernier exemple, j’ai modifié les données pour utiliser des « lignes » et ajouté un paramètre « lw » pour augmenter la largeur de ligne à 2. La modification de l’axe des y a également assuré que la clé n’entre pas en conflit avec les lignes de données :

Exemple de graphique gnuplot

Autres conseils

Lorsque vous avez modifié les paramètres à l’aide des commandes « set », vous pouvez rapidement redessiner votre graphique en utilisant « replot » plutôt que d’utiliser la commande de tracé complet. N’oubliez pas d’utiliser les touches fléchées haut et bas pour rappeler les commandes précédentes. Cela économise beaucoup de frappe!

gnuplot peut faire beaucoup, beaucoup plus, mais j’espère que les informations ici sont suffisantes pour vous aider à démarrer.