2017-04-25 1 views

Répondre

1

Vous pouvez utiliser mot-clé de gnuplot every, par exemple pour tracer les 2000 premiers enregistrements:

plot 'file.dat' binary format='%float%float' every ::::2000 using 1:2 with lines; 

, mais il semble que ce lit le fichier entier et puis parcelles seulement les 2000 premiers enregistrements, ce qui est probablement pas ce que tu veux. Donc, vous pourriez avoir à utiliser un utilitaire externe, comme:

plot "<(head --bytes 16000 file.dat)" binary format='%float%float' using 1:2 with lines 

Par exemple, ce test de jouet a fonctionné pour moi:

perl -e 'for ($i=0; $i < 21; $i++) { print pack "ff", $i, $i*$i }' > squares.dat 
gnuplot -e "set terminal png;set out 'only5squares.png';plot '<(head --bytes 40 squares.dat)' binary format='%float%float' using 1:2 with lines;" 

enter image description here

+0

Oui, votre première suggestion ne lit à travers l'ensemble des données fichier. La seconde entraîne un avertissement gnuplot: Sauter le fichier de données sans points valides. Un résultat de tracé vide. Je ne suis pas sûr que gnuplot connaisse le concept de 'record' quand il s'agit de données binaires? – tansvaal

+0

Hmm, un exemple de jouet (j'ai édité la réponse pour l'ajouter) a fonctionné pour moi avec gnuplot 5.0. – MassPikeMike

+0

Il y a d'autres mots-clés qui pourraient être utilisés avec 'binary' qui modifient le concept d'un" enregistrement "de gnuplot, bien que, comme' filetype' et 'array', au cas où vous en utilisiez un. – MassPikeMike