Plot 是否可以禁止从数据文件列打印零值?

Plot 是否可以禁止从数据文件列打印零值?,plot,gnuplot,zero,Plot,Gnuplot,Zero,我编写了相同的数据收集过程,随着时间的推移,我向数据输出中添加了更多的列。 为了建立一致的格式,程序在没有可用测量值的情况下输出0 我想知道在绘制数据文件时是否可以不绘制零值(例如,如果没有数据存在)。 一些新列是自己绘制的(使用2:7),而另一些列是在表达式中使用的(使用2:($7+$8))。gnuplot不会绘制非数字的值,即NaN。您可以在数据中使用此字符串而不是0,或者编写一个函数将0转换为NaN,并使用它,例如: chk(x) = (x==0?NaN:x) plot "file" us

我编写了相同的数据收集过程,随着时间的推移,我向数据输出中添加了更多的列。 为了建立一致的格式,程序在没有可用测量值的情况下输出
0

我想知道在绘制数据文件时是否可以不绘制零值(例如,如果没有数据存在)。
一些新列是自己绘制的(
使用2:7
),而另一些列是在表达式中使用的(
使用2:($7+$8)
)。

gnuplot不会绘制非数字的值,即
NaN
。您可以在数据中使用此字符串而不是0,或者编写一个函数将0转换为NaN,并使用它,例如:

chk(x) = (x==0?NaN:x)
plot "file" using 2:(chk($7)+chk($8)) with lines

将值添加到
NaN
会导致
NaN

这里有另一个选项:
设置数据文件缺少“0”
。注意,将绘制
0.0
的值。 如果您将
与lines一起使用,或将
与linespoints一起使用,这也将绘制连接的线

代码:

### do not plot values "0"
reset session

$Data <<EOD
1  1.1
2  0
3  5.1
4  2.1
5  0
6  0.0
7  5.1
EOD

set datafile missing "0"

plot $Data u 1:2 w lp pt 7, \
     '' u 1:($1+$2) w lp pt 7
### end of code
###不打印值“0”
重置会话

$Data阅读此答案后,我意识到实际上有些值是
nan
,而不是
0
(程序错误)。程序使用s
sprintf(“%12.6g”,…)
。幸运的是,对于Gnuplot来说,
NaN==NaN
。此外,文档还表示字符串值被视为无效,而不是缺少样本。@U.Windl Try setting
set datafile missing NaN