Как использовать d3.time.scale () для генерации массива равномерно распределенных дат?
Кажется, это должно быть тривиально. Я хочу использоватьd3.time.scale()
чтобы получить массив равномерно распределенных дат, который охватывает определенный интервал времени. Например, годы
[2012-01-01, 2013-01-01, 2014-01-01]
или месяцы
[2012-01-01, 2012-02-01, 2012-03-01 ... 2014-12-01]
или что угодно.
Итак, я начинаю так:
var t = d3.time.scale()
.domain(d3.extent(dates))
.nice(d3.time.year);
Я бы тогда предположил издокументация что я смогу сделать это
var ticks = t.ticks(d3.time.month,1);
... но это просто возвращает одну дату.
Это дает мне массив месяцев
var ticks = t.ticks(30)
... но только потому, что я примерно сказал, сколько тиков для генерации (30), что я не буду знать заранее (если я сам не сделаю тяжелую работу, что побеждает цель использования d3 для этого) ,
Я не понимаю, почему не получается просто сказать, что я хочу каждый год, или каждый месяц, или каждые 3 месяца, или что-то еще.
Я положил скрипку здесь:http://jsfiddle.net/herbcaudill/LgGpd/4/