gnuplot - "simulating" 输入硬编码坐标

gnuplot - "simulating" input to hardcode a coordinate

假设我想为我拥有的每个 x 坐标打印一个标签,但在固定高度,而不是在相关点的偏移处?

即我要替换:

plot ... , '' u 1:2:(sprintf(...)) w labels offset char 1,1 notitle

类似

plot ..., '' u 1:(fixed coordinate):(sprintf(...)) w labels notitle

有这种可能吗?

是的,这是可能的,而且几乎就是您指定的内容。您可以使用文字数字指定一列,但是当您使用带括号的表达式时,gnuplot 会将其解释为要计算的表达式(在此表达式中可以通过 $1、$2 等引用列)。

所以,如果你想让y坐标固定在5(例如),你可以这样做

plot datafile u 1:(5):(sprintf(...)) w labels notitle

读取此表达式时,gnuplot 会将未加括号的 1 解释为列规范,但会将括号中的文字数字视为要计算的表达式 - 在本例中是一个计算结果为 5 的非常简单的表达式。

可以使用相同的方法来转换要绘制的数据。例如,plot datafile u (*2):(sin()) 将在 x 坐标等于第 1 列中值的两倍且 y 坐标等于第 2 列中值的正弦的点处绘制数据 - 只要它在括号中,gnuplot 就会处理它作为要为每个点计算的表达式。

有关详细信息,请参阅 help usinghelp using examples