【问题标题】:Group log file data by time interval in d3在 d3 中按时间间隔对日志文件数据进行分组
【发布时间】:2013-06-29 23:45:38
【问题描述】:

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

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

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

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

【问题讨论】:

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


【解决方案1】:

根据 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 调用背后的秘密。

【讨论】:

    猜你喜欢
    • 2021-07-07
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 2012-07-07
    • 1970-01-01
    • 1970-01-01
    • 2021-04-29
    相关资源
    最近更新 更多