2011-02-12 39 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

相关问题