2011-01-26 2 views
14

J'ai un fichier de données au format suivant.Création de tics d'axe x à partir d'une colonne dans un fichier de données dans Gnuplot

/foo.jsp 1234 
/bar.jsp 6653 
/foobar.jsp 9986 
/bar.jsp 2221 
/foo.jsp 5643 

Je veux tracer ce fichier dans Gnuplot où les tics sur l'axe x est tiré de la première colonne et les valeurs sur l'axe y de la deuxième colonne. Pour illustrer je voudrais que le tableau ressemble à ceci:

10000 x   x 
5000  x   x   x 
0  /foo.jsp /bar.jsp /foobar.jsp 

Où les x sont les points dans le diagramme.

Le meilleur que j'ai réussi à faire est:

plot "datafile.dat" using 2:xticlabel(1) with points 

Cependant, cette commande répète les tics pour chaque valeur dans la première colonne (à savoir que je reçois deux tics de l'axe x). Je voudrais qu'il y ait un tic unique pour chaque chaîne unique dans la première colonne.

Répondre

19

Je pense que vous devriez inclure une colonne avec juste le nombre x, disons foo.jsp = 1, bar.jsp = 2, etc. et supposons que vous mettez cela dans la première colonne.

donc votre fichier de données ressemblerait à ceci:

1 foo.jsp 1234
2 bar.jsp 6653
3 foobar.jsp 9986
2 bar.jsp 2221
1 foo.jsp 5643

Ensuite, utilisez:

plot "datafile.dat" using 1:3:xtic(2) with points 
+0

Je suppose que vous voulez dire que je devrais mettre des numéros uniques pour chaque chaîne unique en e La deuxième colonne ci-dessus? Cela semble fonctionner si je l'essaye ici. Cependant, cela nécessite un pré-traitement pour associer chaque étiquette à un nombre. C'est faisable mais ce serait mieux si nous pouvions l'éviter. Merci pour le tuyau. –

+0

Ce serait: plot "datafile.dat" en utilisant 2: xtic (1) avec des points, je l'ai vérifié et cela fonctionne, mais il ressemble beaucoup à votre solution initiale. – Martin

+0

En outre, si vous voulez vraiment 2 points au-dessus de xlabel "foo.jsp" vous devrez mettre un nombre unique avant "foo.jsp" – Martin

Questions connexes