【问题标题】:gnuplot - "simulating" input to hardcode a coordinategnuplot - “模拟”输入以硬编码坐标
【发布时间】:2016-03-14 09:19:54
【问题描述】:
假设我想为我拥有的每个x 坐标打印一个标签,但高度固定,而不是在问题点的偏移处?
即我想替换:
plot ... , '' u 1:2:(sprintf(...)) w labels offset char 1,1 notitle
类似的东西
plot ..., '' u 1:(fixed coordinate):(sprintf(...)) w labels notitle
有这种可能吗?
【问题讨论】:
标签:
layout
plot
label
gnuplot
hardcoded
【解决方案1】:
是的,这是可能的,而且几乎就是您指定的。您可以使用文字编号指定列,但是当您使用带括号的表达式时,gnuplot 会将其解释为要计算的表达式(在此表达式中,列可以通过 $1、$2 等来引用)。
所以,如果你想让 y 坐标固定为 5(例如),你可以这样做
plot datafile u 1:(5):(sprintf(...)) w labels notitle
读取此表达式时,gnuplot 会将未加括号的 1 解释为列规范,但会将括号中的文字数字视为要计算的表达式 - 在本例中是一个非常简单的表达式,计算结果为 5。
同样的方法可用于转换要绘制的数据。例如,plot datafile u ($1*2):(sin($2)) 将在 x 坐标等于第 1 列中值的两倍且 y 坐标等于第 2 列中值的正弦值的点绘制数据 - 只要它在括号中,gnuplot 就会将其视为为每个点计算的表达式。
请参阅help using 和help using examples 了解更多信息。