2
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”

4

2 回答 2

4

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

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

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

如果您将 awk 的输出发送到outfile,例如,您现在可以像这样绘制文件:

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

所有列的绘图

于 2013-05-01T12:24:50.203 回答
1

如果有人遇到这种情况,我建议至少更新到 4.6.5 Gnuplot 版本。

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

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

于 2014-04-09T10:46:34.847 回答