按d3中的时间间隔对日志文件数据进行分组

时间:2013-06-29 23:45:38

标签: javascript d3.js data-visualization momentjs rickshaw

我有一些我想要绘制的日志文件数据。对于一个日志文件,每次事件发生时,都会在日志文件中添加一行。我可以得到它,以便数据看起来像这样:

data = [
    {
        "click": true,
        "date": "2013-06-23T14:37:27.000Z"
    },
    {
        "click": true,
        "date": "2013-06-23T14:36:02.000Z"
    },
    ...
    ...
    ...
]

现在,我想要做的是在时间线上查看这些数据,这样我就可以看到随着时间的推移会发生多少次点击。但是,我认为我需要按时间间隔(1分钟或15分钟,一天......)对这些数据进行分组,以便我可以看到有多少人在一段时间内点击。然后绘制间隔数据图。

有没有办法按时间间隔对数据进行分组? d3有办法做到这一点吗?我也在使用人力车和咖啡。

1 个答案:

答案 0 :(得分:2)

根据Adam Pearce的建议,您可以在此处获取所有信息:http://bl.ocks.org/mbostock/3048166

第一步是定义x

var x = d3.scale.linear()
    .domain([0, 120])
    .range([0, width]);

然后,您只需定义所需的刻度数:

// Generate a histogram using twenty uniformly-spaced bins.
var data = d3.layout.histogram()
    .bins(x.ticks(20))
    (values);

values定义如下:

// Generate a log-normal distribution with a median of 30 minutes.
var values = d3.range(1000).map(d3.random.logNormal(Math.log(30), .4));

所以,秘密就在d3.layout.histogram().binsaxis.ticks来电之后。