假设我想在文件“animals.txt”中绘制数据:
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
是否可以让点对每个类别使用不同的点类型或颜色,而不是使用标签(可能会重叠)? (例如,使用 pointtype 3 时“cat”将显示为红色,使用 pointtype 4 时“dog”将显示为蓝色等)
我可以使用“lc 变量”并用颜色替换标签列,但我正在使用的文件有太多不同的标签,我无法轻松做到这一点。
最佳答案
我认为没有办法直接做到这一点。
但是,一个简单的解决方法是使用 gnuplot 的 awk 接口(interface)。然后,您可以绘制 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"
由于每行之间的唯一区别是动物的名称,您可能可以用更好的方式编写脚本,但您明白了,
汤姆
关于gnuplot - 如何在 Gnuplot 中指示具有不同点类型的标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4980957/