从同一个文件中绘制多个系列

时间:2016-08-18 11:30:23

标签: gnuplot

我有一个类似于以下内容的数据文件:

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

1 个答案:

答案 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)

产生 enter image description here