gnuplot - 如何在 Gnuplot 中指示具有不同点类型的标签?

标签 gnuplot

假设我想在文件“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/

相关文章:

gnuplot - 如何使拟合函数的线条颜色随 y 变化?

Gnuplot 获取数据文件中特定数据的值? (使用或不使用统计数据)

sum - Gnuplot:如何从数据文件加载和显示单个数值

variables - gnuplot 将数据文件中的一个数字存储到变量中

resize - 防止抽动标签在 gnuplot 中调整图形大小

format - gnuplot:紧凑 Axis 标签格式

gnuplot - 如何从点文件内部为 gnuplot 中的每个点添加颜色

c++ - 使用 gnuPlot 在 C++ 中绘制图形

从 gnuplot 中的一个非常大的文件中绘制子图

gnuplot - gnuplot-仅在图例/键中增加点的大小