Gnuplot 数据点为空的列
对于“每周”列中的空数据点,绘图将绘制“每月”列中的值。 月柱图和日柱图是完美的。Gnuplot 数据点为空的列,gnuplot,average,stock,Gnuplot,Average,Stock,对于“每周”列中的空数据点,绘图将绘制“每月”列中的值。 月柱图和日柱图是完美的。 除了设置数据文件缺少“”和设置数据文件分隔符“\t”之外,还可以提出其他建议。唉,Gnuplot不支持基于字段的数据文件,当前唯一的解决方案是预处理文件awk非常适合此任务(注意,如果文件包含硬选项卡,则需要调整FIELDWIDTHS): 这将第3列和第4列中的空字段(/^*$/)替换为问号,这意味着Gnuplot未定义。awk脚本末尾的1调用默认规则:{print$0} 如果将awk的输出发送到输出文件,例如,
除了设置数据文件缺少“”和设置数据文件分隔符“\t”之外,还可以提出其他建议。唉,Gnuplot不支持基于字段的数据文件,当前唯一的解决方案是预处理文件
awk
非常适合此任务(注意,如果文件包含硬选项卡,则需要调整FIELDWIDTHS
):
这将第3列和第4列中的空字段(/^*$/
)替换为问号,这意味着Gnuplot未定义。awk脚本末尾的1
调用默认规则:{print$0}
如果将awk的输出发送到输出文件
,例如,现在可以如下所示绘制文件:
awk '$3 ~ /^ *$/ { $3 = "?" } $4 ~ /^ *$/ { $4 = "?" } 1' FIELDWIDTHS='6 7 8 7' infile > outfile
如果有人遇到这种情况,我建议至少更新到4.6.5 Gnuplot版本 这是因为从Gnuplot 4.6.4更新: *更改将csv文件中的空字段视为“缺失”而不是“错误” 4.6.5中似乎有一个(相关的?)错误修复:
*修复选项卡分隔值文件中的第一个空字段被错误忽略回答很好我不知道您可以使用文件的列标题制作自动标签标题如果我只需要绘制每周的列wrt date,您可以在gnuplot脚本文件中建议任何解决方案。@deepak.yadav:使用相同的答案,使用1:3将绘图行更改为:
绘图“输出文件”。捕捉良好。我可以确认,从4.6.4开始,以下命令可以很好地处理给定的数据集(由制表符分隔!):set datafile separator'\t';设置样式数据行;绘制'data.csv'u1:2','u1:3','u1:4
。
awk '$3 ~ /^ *$/ { $3 = "?" } $4 ~ /^ *$/ { $4 = "?" } 1' FIELDWIDTHS='6 7 8 7' infile > outfile
set key autotitle columnhead out
set style data linespoint
plot 'outfile' using 1:2, '' using 1:3, '' using 1:4