Como usar d3.time.scale () para gerar uma matriz de datas uniformemente espaçadas?

Isso parece que deveria ser trivial. Eu quero usard3.time.scale() para obter uma matriz de datas uniformemente espaçadas que abrangem um determinado intervalo de tempo. Por exemplo, anos

 [2012-01-01, 2013-01-01, 2014-01-01]

ou meses

 [2012-01-01, 2012-02-01, 2012-03-01 ... 2014-12-01]

como queiras.

Então eu começo assim:

var t = d3.time.scale()
    .domain(d3.extent(dates))
    .nice(d3.time.year);

Eu assumiria então dodocumentação que eu seria capaz de fazer isso

var ticks = t.ticks(d3.time.month,1);

... mas isso apenas retorna uma única data.

Isso me dá uma série de meses

var ticks = t.ticks(30)

... mas apenas porque eu disse aproximadamente quantos carrapatos gerar (30), que eu não saberia de antemão (a menos que eu faça algum trabalho pesado sozinho, o que meio que anula o propósito de usar o d3 para isso) .

Eu não entendo porque não está funcionando apenas para dizer que eu quero todo ano, ou todo mês, ou a cada 3 meses, ou o que for.

Eu coloquei um violino aqui:http://jsfiddle.net/herbcaudill/LgGpd/4/

questionAnswers(2)

yourAnswerToTheQuestion