gnuplot 条件绘图与 if

gnuplot conditional plotting with if

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

10  0.5
20  0.8
25  0.3
15  0.6

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

命令是

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

如您所见,我必须指定将点归零。我不想要那个!我想跳过....

要在 gnuplot 中跳过一个点,您必须给它一个无效值,例如 1/0:

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

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

从 gnuplot 版本 5.0.6 开始,可以使用 set datafile missing NaN 将无效点视为缺失点。过滤后的数据就好像无效点不存在一样。有关工作示例,请参阅