使用if的gnuplot条件绘图

时间:2015-05-29 05:49:40

标签: gnuplot

我有一个包含两列的数据文件

10  0.5
20  0.8
25  0.3
15  0.6

如果第一列小于或等于20,我想绘制第二列。问题是,我想跳过第一列大于20的行,但gnuplot强迫我在条件部分执行某些操作

命令是

plot 'data.txt' u ($1<=20?$2:0) with points

正如你所看到的,我必须指明一个零点。我不想要那个!我想跳过......

1 个答案:

答案 0 :(得分:4)

要跳过gnuplot中的某个点,您必须为其指定一个无效的值1/0

plot 'data.txt' u 1:($1 <= 20 ? $2 : 1/0) with points

对于某些绘图样式,无效值的存在值得注意。如果剩余的点应该连接,例如对于线条,线条在无效点处中断。

从gnuplot版本5.0.6开始,可以使用set datafile missing NaN来处理丢失的无效点。然后,过滤后的数据就像无效点不存在一样。有关工作示例,请参阅https://stackoverflow.com/a/46070360/2604213