2013-05-01 22 views
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 

空数据点在每周专栏,该地块从每月专栏ploting值。 每月柱状图和每日柱状图都很完美。 建议的东西比设置数据文件丢失“'和设置数据文件分隔符”\ t“列空数据点

回答

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

+0

不错的答案我不知道如果需要的话,您可以使用文件的列头来制作自动标签标题 – psibar 2013-05-01 15:37:15

+0

只绘制每周专栏的日期,你能否在gnuplot脚本文件中提出任何解决方案。 – 2013-05-02 04:57:56

+0

@ deepak.yadav:使用相同的答案,将绘图线更改为:'plot'outfile'using 1:3'。 – Thor 2013-05-02 06:04:52

1

如果有人运行到这一点,我建议更新到至少4.6 .5 Gnuplot版本。

这是因为从gnuplot的4.6.4更新: *在CSV文件CHANGE对待空字段为“失踪”,而不是“坏”

,而且似乎是在4.6(有关系吗?)修正错误.5: *在制表符分隔值文件中FIX空的第一个字段被错误地忽略了

+0

好的。我可以确认,从4.6.4开始,以下命令可以很好地处理给定的数据集(用制表符分隔):'set datafile separator'\ t';设置风格的数据线;绘制'data.csv'u 1:2,'u 1:3,'u 1:4'。 – Christoph 2014-04-09 11:05:23