Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/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_Average_Stock - Fatal编程技术网

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