1

我有一些想要在 xyz 坐标系中绘制的实验值。这些值在一定程度上受到一定的限制,因此有一个开始和一个结束。此外,我想绘制它们,它们的最后一点应该以特殊的方式可见。就像具有特殊颜色或特殊点的独特点。我怎样才能创建这样一条线,其中末端以点或类似的形式可见?

4

1 回答 1

0

如果它是最后一个点,您可以使用every它来选择它。不幸的是,获得最后一点没有“神奇”价值。您必须计算条目数并使用该值:

stats 'file.dat' nooutput
last_index = int(STATS_records - 1)
splot 'file.dat' with lines, '' every ::last_index with points

或者,您可以使用该using语句添加一些过滤,该过滤仅适用于您要选择的单个点。

在最一般的情况下,你会

f(i, x, y, z) = ...
splot 'file.dat' with lines, '' using (f($0, $1, $2, $3) ? $1 : 1/0):2:3 with points

这会跳过所有点,f返回0. $0是 的简写column(0),它给出行索引,$1给出第一列的数值等等。

现在由您来定义适当的过滤函数f

如果终点是由例如具有最大值的点给出的x,您可以使用:

stats 'file.dat' using 1 nooutput
f(x) = (x == STATS_max ? 1 : 0)
splot 'file.dat' with lines, '' using (f($1) ? $1 : 1/0):2:3 with points

如果您有其他标准,则必须f相应地定义您的功能。

要在这一点上添加标签,您可以使用label绘图样式:

splot 'file.dat' with lines, \
      '' using (f($1) ? $1 : 1/0):2:3:(sprintf('(%.1f,%.1f,%.1f)', $1, $2, $3)) \
         offset char 1,1 point notitle
于 2013-10-17T12:12:59.203 回答