使用Gnuplot在timeseries上绘制事件

使用Gnuplot在timeseries上绘制事件,gnuplot,Gnuplot,我试图在一些其他图表的顶部绘制一个事件的发生情况,这些图表显示了一个进程花了多少时间来查看是否存在相关性,但我不知道如何使gnuplot正确地对数据求和。由于数据不是数字,我在应用与绘制直方图相关的材料时遇到困难。以下是我的数据: "2012-05-15 08:12:49","foo" "2012-05-15 08:13:01","foo" "2012-05-15 08:13:58","foo" "2012-05-15 08:14:03","foo" "2012-05-15 08:14:10",

我试图在一些其他图表的顶部绘制一个事件的发生情况,这些图表显示了一个进程花了多少时间来查看是否存在相关性,但我不知道如何使gnuplot正确地对数据求和。由于数据不是数字,我在应用与绘制直方图相关的材料时遇到困难。以下是我的数据:

"2012-05-15 08:12:49","foo"
"2012-05-15 08:13:01","foo"
"2012-05-15 08:13:58","foo"
"2012-05-15 08:14:03","foo"
"2012-05-15 08:14:10","foo"
"2012-05-15 08:14:17","foo"
"2012-05-15 08:14:33","foo"
"2012-05-15 08:14:35","foo"

...

"2012-05-15 10:31:51","foo"
"2012-05-15 10:32:02","foo"
"2012-05-15 10:32:03","foo"
"2012-05-15 10:32:07","foo"
"2012-05-15 10:32:09","foo"
"2012-05-15 10:32:15","foo"
这是数据文件的范围,我想要一个带有一条线的图表,它表示当时发生了多少事件

(所以我可以把它叠加到另一个绘制了处理时间的绘图上)

这可能吗


编辑:到目前为止,我已经尝试了几种选项组合,但没有一种组合产生任何可读的图形,这是我正在使用的gnuplot文件,
type1.csv
type2.csv
来自我正在覆盖的图形。small_report.csv是对“事件”数据的1000行提取。

使用python 2.7计算特定日期的显示次数非常容易:

from collections import Counter
with open('datafile') as fin:
    c = Counter(line.split()[0][1:] for line in fin)

for k,v in sorted(c.items()):
    print k,v
如果您没有python 2.7,可以在早期版本中使用
defaultdict
来模拟这一点:

from collections import defaultdict
with open('datafile') as fin:
    c = defaultdict(int)
    for line in fin:
        c[ line.split()[0][1:] ] += 1

for k,v in sorted(c.items()):
    print k,v
现在,您可以使用它来绘制绘图:

set timefmt '%Y-%m-%d'
set xdata time
plot "<python pythonscript.py" u 1:2
设置时间“%Y-%m-%d”
设置扩展数据时间

plot“我的诀窍是在对x轴(binning)进行数学运算时记住使用timecolumn()

上面的示例汇总给定binwidth内的事件,并跨时间线绘制它们

$gnuplot --version
gnuplot 4.6 patchlevel 4

我应该提到我有
gnuplot 4.6 patchlevel 0
当你说你想要一条线来表示在某个时间发生了多少事件时,你是说每分钟?每秒?每天?你想要做什么样的直方图?如果你明确你想要做什么样的图,如果你发布示例代码,这会有帮助例如,如果图形的宽度为400px,那么
full\u date\u range/400
将是特定的时间,但是如果不能做到这一点,我不会太大惊小怪,如果点太多,我会选择每分钟或每10分钟。直方图?我会吗需要柱状图吗?我马上就把我得到的放在上面。你是如何尝试“求和”数据的?你希望绘图看起来像什么?你想计算在某个时间间隔内“foo”
出现的次数吗?@mgilson
“foo”“
在这种情况下是不相关的,在这一点上,即使没有图表,我也很乐意看到该日期每小时出现多少次
$gnuplot --version
gnuplot 4.6 patchlevel 4