Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gnuplot 如何绘制缺少数据线的图形?_Gnuplot_Lines - Fatal编程技术网

Gnuplot 如何绘制缺少数据线的图形?

Gnuplot 如何绘制缺少数据线的图形?,gnuplot,lines,Gnuplot,Lines,我及时记录了数据。但是一些数据行丢失,gnuplot在这些间隔中用长行替换它们 如何将gnuplot设置为不绘制任何内容,而不是在这些间隔中绘制线 另外,我在这些细胞系中没有游离细胞,我根本没有这些细胞系 线路: column 1 ... col 195 13:30:20.8 0.78061899 13:30:21.8 5.969546498 13:32:19.8 17.21257881 13:32:20.8 6.922475345 如果不想在两点之间画一条线,则必须在数

我及时记录了数据。但是一些数据行丢失,gnuplot在这些间隔中用长行替换它们

如何将gnuplot设置为不绘制任何内容,而不是在这些间隔中绘制线

另外,我在这些细胞系中没有游离细胞,我根本没有这些细胞系

线路:

column 1  ... col 195 
13:30:20.8   0.78061899
13:30:21.8    5.969546498
13:32:19.8   17.21257881
13:32:20.8   6.922475345

如果不想在两点之间画一条线,则必须在数据文件中的两点条目之间插入一条空行,以便有效地

13:30:20.8   0.78061899
13:30:21.8    5.969546498

13:32:19.8   17.21257881
13:32:20.8   6.922475345
这不能直接用gnuplot来完成,但您可以使用例如
awk
来进行动态处理:

set timefmt '%H:%M:%S'
set xdata time
filename = 'data.txt'
plot 'awk ''{split($1,d,":"); t_prev = t; t = (d[1] * 60 + d[2])*60 + d[3]; if (t_prev && (t - t_prev > 10)) print ""; print }'' '.filename with lines

这里,间隔阈值是10秒。

我假设您的未命中数据标识符是“NaN”,那么您可以使用以下命令

plot "data" using 1:($2) with linespoints
而不是

plot "data" using 1:2 with linespoints

前者将忽略缺失的数据,并将其视为空行,因此不会在间隙上绘制连接线,而后者将绘制连续的、不间断的线。

否,这与“NaN”无关。一些数据点之间有很大的时间间隔。这对我来说很有效。与其他答案(插入一个空行)相比,这种方法的优点是,当只缺少一些值时,可以使用这种方法。如果没有值,那么插入一个空行没有错,但是这个答案也没有错,不值得否决。