具有空数据点的列

时间:2013-05-01 11:35:06

标签: gnuplot average stock

date  daily  weekly  monthly
1      11             88
2      12
3      45    44
4      54
5      45
6      45    66
7      77
8      78
9      71    99       88

对于每周列中的空数据点,该图绘制了每月列中的值。 每月柱图和每日柱图是完美的。 建议的不仅仅是设置数据文件缺失' '并设置数据文件分隔符" \ t"

2 个答案:

答案 0 :(得分:4)

唉,Gnuplot不支持基于字段的数据文件,目前唯一的解决方案是预处理文件。 awk非常适合该任务(请注意,如果文件包含您需要调整的硬标签FIELDWIDTHS):

awk '$3 ~ /^ *$/ { $3 = "?" } $4 ~ /^ *$/ { $4 = "?" } 1' FIELDWIDTHS='6 7 8 7' infile > outfile

这会将第3列和第4列中的空字段(/^ *$/)替换为问号,这意味着未定义到Gnuplot。 awk脚本末尾的1调用默认规则:{ print $0 }

如果你将awk的输出发送到outfile,你可以举例说明这样的文件:

set key autotitle columnhead out 
set style data linespoint 
plot 'outfile' using 1:2, '' using 1:3, '' using 1:4

Plot of all columns

答案 1 :(得分:1)

如果有人碰到这个,我建议至少更新到4.6.5 Gnuplot版本。

这是因为从Gnuplot 4.6.4更新: * CHANGE将csv文件中的空字段视为"缺少"而不是"坏"

4.6.5中似乎有一个(相关的?)错误修正: *选项卡分隔值文件中的FIX空第一个字段被错误地忽略