web-dev-qa-db-fra.com

gnuplot traçant plusieurs graphiques linéaires

J'ai le fichier de données suivant, nommé ls.dat:

# Gnuplot script file for "ls"
# Version       Removed Added   Modified
8.1     0       0       0
8.4     0       0       4
8.5     2       5       9
8.6     2       7       51
8.7     2       7       51
8.8     2       7       51
8.9     2       7       51
8.10    2       7       51
8.11    2       8       112
8.12    2       8       112
8.13    2       17      175
8.17    6       33      213

J'essaye de comploter avec ceci:

plot "ls.dat" using 1:2 title 'Removed' with lines,\
     "ls.dat" using 1:3 title 'Added' with lines,\
     "ls.dat" using 1:4 title 'Modified' with lines

Ceci produit le graphique suivant:

enter image description here

Ce que j'attends, ce sont des parcelles de trois lignes qui devraient toutes augmenter, mais à des taux différents. Quelqu'un peut-il voir ce qui se passe ici? Je suis sûr que ce doit être quelque chose de très bête.

16
Mike Kwan

Je pense que votre problème est votre numéro de version. Essayez de faire 8.1 -> 8.01, et ainsi de suite. Cela devrait mettre les points dans le bon ordre.

Vous pouvez également tracer using X, où X est le numéro de colonne souhaité, au lieu de using 1:X. Cela va tracer ces valeurs sur l’axe des y et les entiers sur l’axe des x. Essayer:

plot "ls.dat" using 2 title 'Removed' with lines, \
     "ls.dat" using 3 title 'Added' with lines, \
     "ls.dat" using 4 title 'Modified' with lines
24
andyras

andyras est complètement correct. Un ajout mineur, essayez ceci (par exemple)

plot 'ls.dat' using 4:xtic(1)

Ceci maintiendra votre fichier de données dans le bon ordre, mais conservera également vos étiquettes de version sur l’axe des x.

11
mgilson

En plus des réponses ci-dessus, la commande ci-dessous fonctionnera également. Je le poste parce que cela a plus de sens pour moi. Dans chaque cas, il s'agit de 'utiliser x-value-column: y-value-column'

plot 'ls.dat' using 1:2, 'ls.dat' using 1:3, 'ls.dat' using 1:4 
3
tom

Quel que soit votre séparateur dans votre ls.dat, vous pouvez le spécifier dans gnuplot :

set datafile separator "\t"
0
kukinsula