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”
唉,Gnuplot 不支持基于字段的数据文件,目前唯一的解决方案是预处理文件。awk
非常适合这项任务(注意文件是否包含您需要调整的硬标签FIELDWIDTHS
):
awk '$3 ~ /^ *$/ { $3 = "?" } $4 ~ /^ *$/ { $4 = "?" } 1' FIELDWIDTHS='6 7 8 7' infile > outfile
这会将第 3 列和第 4 列中的空字段 ( /^ *$/
) 替换为问号,这意味着对 Gnuplot 未定义。1
awk 脚本末尾的 调用默认规则:{ print $0 }
.
如果您将 awk 的输出发送到outfile
,例如,您现在可以像这样绘制文件:
set key autotitle columnhead out
set style data linespoint
plot 'outfile' using 1:2, '' using 1:3, '' using 1:4
如果有人遇到这种情况,我建议至少更新到 4.6.5 Gnuplot 版本。
这是因为从 Gnuplot 4.6.4 更新: * CHANGE 将 csv 文件中的空字段视为“缺失”而不是“坏”
4.6.5 中似乎有一个(相关的?)错误修复:* FIX 制表符分隔值文件中的空第一个字段被错误地忽略