2017-08-12 4 views
0

tous,itérer sur la ligne gnupllot

J'ai un fichier qui contient le « temps » dans la première colonne, puis tas de points de données dans les colonnes suivantes, et je veux imprimer tous dans le même fichier et montrer comment chaque objet se déplace différemment dans le temps, mais je ne sais pas comment itératif sur un tel fichier, j'ai cherché longtemps mais sans chance.

Voici un exemple de certaines données:

0 0.001 0.006 
1 0.001 0.090 
2 0.005 0.099 
3 0.008 0.999 
4 0.009 0.100 
5 0.010 0.100 

Attendez-vous dans mon dossier que j'ai 100 + lignes après la colonne de temps. C'est ce que j'ai jusqu'ici dans ma boucle gnuplot:

do for [i=2:99] { 
    plot 'data.out' using 1:i w l lt 7 lw 1 } 

Toute aide est appréciée, merci à tous.

+0

la colonne de données imprimées de façon incorrecte, doit être N colonnes, la première colonne est le temps, et le reste des colonnes sont des objets en mouvement. – bsmith144

Répondre

1

au cas où vous voulez avoir tout dans « un complot », vous pouvez échanger l'ordre de la boucle for et la commande plot:

plot for [i=2:99] 'data.out' using 1:i w l lt 7 lw 1 

Afin de déterminer le nombre de colonnes automatiquement, on peut utiliser la commande stat comme dans:

fName = 'data.out' 
stat fName nooutput 

N = STATS_columns #number of columns found in file 

plot for [i=2:N] fName u 1:i w l lt 7 lw 1 
+0

Cela fonctionne, merci! – bsmith144