2011-02-12 1 views
3

Disons que j'ai des données que je voudrais tracer dans un fichier « animals.txt »:Comment indiquer des étiquettes avec différents types de points dans Gnuplot?

cat 5.2 1.0 
cat 5.4 1.3 
cat 5.2 1.2 
dog 3.8 1.1 
dog 3.5 1.5 
dog 3.6 1.3 
giraffe 1.3 9.7 
giraffe 1.5 9.0 
giraffe 1.4 9.9 

je peux générer un nuage de points avec des étiquettes en utilisant:

plot "animals.txt" u 2:3:1 w labels 

Je peux aussi varier le style de chaque point en utilisant quelque chose comme:

plot "animals.txt" u 2:3 w points pointtype 3 

au lieu d'utiliser des étiquettes (qui pourrait se chevaucher), est-il possible d'avoir des points utilisent différents types de points ou de couleurs pour chaque catégorie? (Par exemple, "cat" serait en rouge en utilisant pointtype 3, "dog" en bleu en utilisant pointtype 4, etc.)

Je pourrais utiliser "lc variable" et remplacer la colonne d'étiquettes par des couleurs, mais le fichier avec lequel je travaille a trop d'étiquettes différentes pour que je puisse le faire facilement.

Répondre

2

Je ne pense pas qu'il existe un moyen de le faire directement. Cependant, une solution facile consiste à utiliser l'interface de gnuplot pour awk. Vous pouvez ensuite tracer 3 graphiques distincts, un pour chaque animal.

plot "<awk '{ if($1 == \"cat\") print $2,$3 }' animals.dat" u 1:2 w points title "cat", \ 
    "<awk '{ if($1 == \"dog\") print $2,$3 }' animals.dat" u 1:2 w points title "dog", \ 
    "<awk '{ if($1 == \"giraffe\") print $2,$3 }' animals.dat" u 1:2 w points title "giraffe" 

Étant donné que la seule différence entre chaque ligne est le nom de l'animal, vous pourriez sans doute ce scénario d'une meilleure façon, mais vous avez l'idée,

Tom

+0

Merci! C'est parfait. – Raghav

+0

Ceci est juste une chose de génie. – darxsys

Questions connexes