我有两列的数据文件
10 0.5
20 0.8
25 0.3
15 0.6
Run Code Online (Sandbox Code Playgroud)
如果第一列小于或等于20,我想绘制第二列。问题是,我想跳过第一列大于20的行,但是gnuplot迫使我在条件部分中做一些事情。
该命令是
plot 'data.txt' u ($1<=20?$2:0) with points
Run Code Online (Sandbox Code Playgroud)
如您所见,我必须指定一个零点。我不要那个!我想跳过...
要跳过gnuplot中的一个点,您必须给它一个无效的值,例如1/0:
plot 'data.txt' u 1:($1 <= 20 ? $2 : 1/0) with points
Run Code Online (Sandbox Code Playgroud)
对于某些绘图样式,无效值的存在值得引起注意。如果应将其余的点连接起来,例如用线连接,则该线会在无效点处中断。
从gnuplot版本5.0.6开始,您可以使用它set datafile missing NaN来处理无效点(例如缺失点)。然后,筛选出的数据的行为就好像无效点不存在一样。有关工作示例,请参见/sf/answers/3224925231/。