我有一个包含两列的数据文件
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
正如你所看到的,我必须指明一个零点。我不想要那个!我想跳过......
答案 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。