Gnuplot:根据y值设置ytics

时间:2014-02-20 10:45:42

标签: gnuplot

在gnuplot中我们可以写

plot "example.data"  using  1:2:ytic(2)

将根据y值放置ytics。

如果exam​​ple.data如下所示

10 32
20 43
50 63

ytics将是32,43和63.我如何才能使它只使用最后一行(在那种情况下为63)?我有很多冒号,我想根据最后一行输入y值,所以我不想手动把它放在63处,每个冒号都有一个勾号。

1 个答案:

答案 0 :(得分:2)

表达式ytic(2)或多或少是ytic(strcol(2))的快捷方式。因此,您可以将任何其他表达式作为参数(也使用条件)来计算为字符串。

对于示例数据,您可以使用以下内容:

plot "example.data" using 1:2:ytic($0 == 2 ? strcol(2) : 1/0)

仅为第三行添加ytic和label。使用1/0也省略了所有其他抽搐,不仅仅是标签,而是“Tic标签不会评估为字符串!”警告。你可以放心地忽略这些,因为这就是你想要的。使用''代替1/0只会跳过标签,但会抽取抽搐。

为了使这项工作适用于最后一行,您可以使用stats命令(从版本4.6.0开始)获取条目数:

stats 'example.data' using 1 nooutput
plot "example.data" using 1:2:ytic($0 == (STATS_records - 1) ? strcol(2) : 1/0)