2013-06-29 59 views
2

我有一些我想要绘制的日志文件数据。对于一个日志文件,每次发生事件时都会将一行添加到日志文件中。我能得到它,这样的数据是这样的:按d3中的时间间隔分组日志文件数据

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

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

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

+0

http://bl.ocks.org/mbostock/3048166 –

回答

2

正如亚当皮尔斯的建议,你可以在这里得到的所有信息: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调用。