Сгруппировать данные файла журнала по временному интервалу в d3

У меня есть некоторые данные файла журнала, которые я хотел бы отобразить в виде графика. Для одного файла журнала каждый раз, когда происходит событие, в файл журнала добавляется строка. Я могу получить так, чтобы данные выглядели так:

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

Теперь я хотел бы просмотреть эти данные на временной шкале, чтобы увидеть, сколько кликов происходит с течением времени. Тем не менее, я думаю, что мне нужно сгруппировать эти данные по интервалам (1 минута или 15 минут, день...), чтобы я мог видеть, сколько людей кликают за определенный период времени. Затем постройте график интервальных данных.

Есть ли способ сгруппировать данные по временному интервалу? Есть ли у d3 способ сделать это? Я также использую рикшу и coffeescript.


person Alexis    schedule 29.06.2013    source источник
comment
bl.ocks.org/mbostock/3048166   -  person Adam Pearce    schedule 30.06.2013


Ответы (1)


Как предложил Адам Пирс, вы можете получить всю информацию здесь: 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().bins и axis.ticks.

person Christopher Chiche    schedule 30.06.2013