0

我是 gnuplot 的新手,很难弄清楚如何进行条件绘图。

我有一个数据文件,我想绘制第一列和第二列的数据以生成折线图,保存到 JPEG/PNG 文件。

测试.txt

1 9.9999 0
2 9.9999 0
3 9.9999 1
4 5.6000 0
5 3.4000 0
6 9.9999 1

我想要做的是从这个数据文件中绘制第 1 列和第 2 列,当第 2 列的值为 9.9999 时,然后将值设置为 0。这意味着每当 9.9999 发生时,它在图表中显示为 0。

这是我正在使用的代码,但似乎不起作用。

plot 'test.txt'  using 1:($2==9.99999?0:$2) with linespoint title 'test'
4

2 回答 2

0

你的语法是正确的。(有关更多信息,请参阅gnuplot 手册的 'Operators pp.28-30 。)

正如@andyras 提到的,检查您是否有正确的值进行比较。

于 2013-04-23T23:20:12.087 回答
0

除了您要比较的数字不正确之外,比较浮点数的相等性通常是有问题的。

想想类似的东西

 plot 'test.txt'  using 1:(abs($2-9.9999)<0.1?0:$2) with linespoint title 'test'
于 2013-04-24T09:30:19.363 回答