2011-02-12 76 views
3

比方說,我有我想在一個文件中「animals.txt」要繪製數據:如何在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 

我可以使用生成標籤的散點圖:

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

我也能

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

而不是使用標籤(可能重疊的)的,是有可能有積分使用不同點類型或顏色:使用類似改變每個點的樣式對於每個類別? (例如,「貓」將使用點類型3爲紅色,「狗」使用點類型4爲藍色等)。

我可以使用「lc變量」並用顏色替換標籤列,但是我正在處理的文件有太多不同的標籤讓我很容易做到這一點。

回答

2

我不認爲有一種方法可以直接做到這一點。

但是,一個簡單的解決方法是使用gnuplot的awk接口。然後你可以繪製3個獨立的圖,每個動物一個。

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" 

由於各行之間的唯一區別是動物的名字,你很可能這個腳本以更好的方式,但你的想法,

湯姆

+0

謝謝!那很完美。 – Raghav 2011-02-13 21:34:54