3 votes

Gnuplot donne une erreur bizarre lors du tracé de données mises à l'échelle ("x range is invalid")

J'essaie de tracer un graphique de données très simple à partir d'une expérience que nous menons à mon travail. Essentiellement, j'ai seulement besoin de tracer y en fonction de x à partir d'un fichier de données séparé par des tabulations qui ressemble à ceci :

468.822 5.76025 2.3631 3 271.91676 60.13701
896.187 5.52183 1.11077 2 519.78846 57.6479052
731.708 6.38751 0.697295 1 424.39064 66.6856044

[et environ 2000 autres lignes comme celle-ci]

Les deux premières colonnes sont mes valeurs x et y. Maintenant, il s'agit d'une donnée tirée d'une vidéo, donc elle est représentée en pixels, mais nous devons la convertir dans les bonnes unités (μm et μm/sec au lieu de pixels, et pixels/image). Pour cette raison, je trace les données avec la ligne suivante :

plot 'datafile.data' u 1*xScale:2*yScale pt 7 ps 1 lc rgb "red" title "[some title]"

Je reçois une erreur disant :

plot 'datafile.data' u 1*xScale:2*yScale pt 7 ps 1 lc rgb "red" title "[some title]"
^
"datafile.data", ligne 9 : l'intervalle x n'est pas valide

(avec le signe ^ pointant vers la fin de la ligne ci-dessus)

J'ai essayé de mettre à l'échelle les données elles-mêmes (ce sont les colonnes 5 et 6), mais cela donne la même erreur.

Quelqu'un a-t-il une idée de ce qui pourrait clocher ?

3voto

Christoph Points 14160

La commande que vous avez utilise le résultat de l'expression arithmétique 1*xScale comme numéro de colonne, et de même pour la deuxième expression. Ce que vous voulez est

plot 'datafile.data' u ($1*xScale):($2*yScale) pt 7 ps 1 lc rgb "red" title "[some title]"

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X