我有一个类似于以下内容的数据文件:
2016-08-16 dogs 12
2016-08-16 cats 9
2016-08-17 cats 4
2016-08-17 mice 42
2016-08-17 dogs 6
即:date series count
。
请注意,系列每天的顺序不一致(可能根本不会出现)。
此外,我的输入文件也没有按顺序排列日期(如果我有 to,我可以使用sort
修复此日期),并且某些日期可能会丢失(因为当天没有数据点)。
我想使用 gnuplot 来渲染它。 X轴应显示日期; Y轴应显示计数;每个系列应该是它自己的行,图例中带有标签。
我知道如何从单独的文件渲染每个系列,但系列没有修复,所以我正在寻找一些不需要的系列。
我该怎么做?
注意:我使用的是gnuplot 4.4
答案 0 :(得分:2)
也许首先可以像这样转换输入文件(input.txt
)文件:
sort -k2,2 -k1,1 input.txt | \
gawk '{if($2!=prev){if(NR>1){print "\n";}print "date", $2; prev=$2;}print $1,$3}' > input2.txt
在这个特殊情况下提供
date cats
2016-08-16 9
2016-08-17 4
date dogs
2016-08-16 12
2016-08-17 6
date mice
2016-08-17 42
然后使用
绘制此多数据集文件datafile="input2.txt"
stats datafile
set xdata time
set timefmt '%Y-%m-%d'
N=int(STATS_blocks)-1
plot for [i=0:N] datafile index i using 1:2 w lp t columnhead(2)