例子:
我想画一张和上图类似的图表:一条曲线上有一些缺失数据点,这意味着曲线是不连续的。
我该怎么做?
这取决于你的数据文件长什么样子。如果在数据文件中插入一个空格,它就不会连接邻近的点(这是最简单的方法):
考虑:
#datafile
1 2
2 3
4 2
5 3
然后是用于绘制的脚本:
plot 'datafile' u 1:2 w linespoints
你可以用其他技巧处理缺失数据:set datafile missing
。 这方面的良好参考是内置帮助文档(help missing
)。
对于单个图,使用set datafile missing
指定表示缺失值的字符字符串,并使用using $
说明符确保gnuplot在缺失值处留下线条间隙。不同的using
说明符在gnuplot文档中有描述,用于set datafile missing
。
当列号被指定为变量时,这就有点棘手了。例如,要绘制文件的多个列,可以使用变量指定列号:
do for [i=2:10] {
plot 'datafile' using ($1):i with lines
}
然而,如果我们尝试使用$
语法,它不起作用:
do for [i=2:10] {
plot 'datafile' using ($1):($i) # ERROR!
}
解决方案是使用列函数,该函数还会为缺失的值留下空白:
do for [i=2:10] {
plot 'datafile' using ($1):(column(i)) with lines
}
set datafile missing
部分的作用。 - mgilson