J'ai des données dans un fichier texte qui a disons 10000 lignes et 2 colonnes. Je sais que je peux le tracer facilement par plot "filename.txt" using 1:2 with lines
. Ce que je veux, c'est simplement tracer, disons les lignes de 1000 à 2000 ou toute autre sélection raisonnable. Est-il possible de le faire facilement ? Merci beaucoup d'avance.
Réponses
Trop de publicités?Il semble que la commande "every" dans gnuplot soit ce que vous recherchez :
plot "filename.txt" every ::1000::2000 using 1:2 with lines
Vous pouvez également pré-traiter votre fichier pour sélectionner les lignes qui vous intéressent. Par exemple, en utilisant awk :
awk "NR>=1000 && NR<=2000" filename.txt > processed.txt
Ensuite, utilisez le "processed.txt" résultant dans votre commande/script gnuplot existant.
Vous pouvez probablement éviter de dépendre d'un utilitaire externe (si votre système ne les a pas installés par exemple) en utilisant la pseudo-colonne 0.
voir help plot datafile using pseudocolumn
Essayez quelque chose comme :
LINEMIN=1000
LINEMAX=2000
#create a function that accepts linenumber as first arg
#an returns second arg if linenumber in the given range.
InRange(x,y)=((x>=LINEMIN) ? ((x<=LINEMAX) ? y:1/0) : 1/0)
plot "filename.txt" using (InRange($0,$1)):2 with lines
(testé sur Gnuplot 4.4.2, Linux)