Gnuplot
Tracé de base des fichiers de données
Recherche…
Introduction
L'une des principales fonctionnalités de gnuplot est la possibilité de tracer des fichiers de données . Tracer un fichier de données est très simple avec gnuplot . En fait, une fois que vous avez ouvert le logiciel depuis le terminal, il vous suffit de numériser le plot 'file'
pour obtenir un tracé automatique.
Tout d'abord, avant de tracer, vous devez être sûr d'être dans le même répertoire que le fichier de données, sinon vous obtiendrez éventuellement un warning
.
Syntaxe
- tracer le fichier de données en utilisant expression_colonne avec style
Tracer un seul fichier de données
Le plot
commande par défaut de gnuplot (également uniquement p
) représente le jeu de données avec colonnes, sous la forme du fichier data_set.dat
ci-dessous.
# Prototype of a gnuplot data set
# data_set.dat
# X - X^2 - 2*X - Random
0 0 0 5
1 1 2 15
1.4142 2 2.8284 1
2 4 4 30
3 9 6 26.46
3.1415 9.8696 6.2832 39.11
4 16 8 20
4.5627 20.8182 9.1254 17
5.0 25.0 10.0 25.50
6 36 12 0.908
Comme vous pouvez le voir, vous pouvez écrire dans votre ensemble de données en notation à virgule flottante. Maintenant, tout est prêt pour faire le tracé de données: en tapant uniquement
plot "data_set.dat"
gnuplot produira un graphique dans votre destination de output
. Les paramètres par défaut utiliseront les deux premières colonnes de votre fichier de données, respectivement x et y. Pour spécifier les colonnes à tracer, utilisez le spécificateur using
plot "data_set.dat" using 2:4
ce qui signifie "tracer le fichier en utilisant la colonne 2 comme X et la colonne 4 comme Y". Dans le cas où votre fichier de données est un fichier tridimensionnel, utilisez simplement la splot
ad pour ajouter la colonne z
splot "data_set.dat" using 1:2:3
Il existe également des styles différents (voir la documentation gnuplot ou Sélection d'un style de traçage pour plus d'informations) pour tracer des points. Comme dit précédemment, le style par défaut est le point
plot "data_set.dat" using 1:4 with point
qui tracera la même chose que si vous ne tapez pas with point
. Un point utile pour le traçage des données est le linespoint
qui est évidemment "lignes + points". PAR EXEMPLE:
plot "data_set.dat" using 1:4 with linespoint
# the abbreviated form is completely equivalent:
# p "data_set.dat" u 1:4 w lp
Formes de tracé itération
Dans le cas où vous avez plusieurs colonnes et que vous voulez les tracer tous dans le même graphique juste passer à la plot
en les séparant par une fonction tout argument que vous préférez, ,
:
p "data_set.dat" u 1:2 w lp,\
"data_set.dat" u 1:3 w lp,\
"data_set.dat" u 1:4 w lp
Quoi qu’il en soit, il peut parfois y avoir trop de colonnes à écrire une par une. Dans ce cas, le résultat de la boucle for
iteration est très utile:
p for [col = 2:4] "data_set.dat" using 1:col w lp
qui donne la sortie
En résumé, for
itération, incrémentez la variable dans la boucle, dans ce cas, col
, avec une étape décidée (si elle n'est pas spécifiée = 1). Par exemple, for [i = 0:6:2]
, incrémente i
de 0 à 6 en 2 étapes: i = 0, 2, 4, 6
. Toutes les valeurs (start, stop et increment) sont converties en valeurs entières.
* Grille
La grille est souvent utile pour tracer un ensemble de données. Pour ajouter un type de grille
set grid
Tracer plusieurs fichiers de données
Première méthode - Concaténation de chaînes
La méthode la plus simple pour tracer plusieurs fichiers de données consiste à insérer une boucle for
dans la commande plot
de gnuplot. En supposant que vous avez N
fichiers nommés en séquence, c.-à-d.
file_1.dat
file_2.dat
file_3.dat
...
file_N.dat
Exécuter la commande
plot for[i = 1:N] "file_".i.".dat"
file_1.dat
tous les fichiers entre file_1.dat
et file_N.dat
dans le même graphique.
Exemple avec trois fichiers de données
Tableau de jeux de données
Axes X | Y-Axe file_1.dat | Y-Axe fichier_2.dat | Y-Axe file_3.dat |
---|---|---|---|
1 | 1 | 1 | 1 |
2 | 2 | 4 | 2 |
3 | 3 | 9 | 6 |
4 | 4 | 16 | 24 |
5 | 5 | 25 | 120 |
Commandes
set terminal postscript color noenhanced ##setting the term
set output "multiple_files.ps"
set key center ##legend placement
plot [1:5][1:120] \
for [i = 1:3] "file_".i.".dat" \
pointsize 1.3 linecolor i+4 \
title "file\_".i.".dat" \
with linespoint
La boucle commence par for [i = 1:3] "file_".i.".dat"
et exécute la commande plot
jusqu'à ce qu'elle atteigne i = 3
. Le .i.
est le nombre concaténé.
title "file\_".i.".dat"
a été écrit avec le \
pour que le symbole _
dans le nom des fichiers apparaisse comme un soulignement plutôt que comme un indice , et le spécificateur noenhanced
est fondamental pour obtenir ce résultat .
Le résultat final est indiqué ci-dessous
Deuxième méthode - Utilisation de la fonction sprintf
Un autre chemin à suivre consiste à utiliser la fonction sprintf
qui fonctionne essentiellement comme le sprintf
langage C. La bonne syntaxe, à partir de la documentation de gnuplot 5.1 est
sprintf("format", x, y, ...)
Un bref exemple clarifiera chaque doute.
file_name(n) = sprintf("file_%d.dat", n)
plot for[i = 1:N] file_name(i) title file_name(i)