【发布时间】:2013-12-09 11:36:06
【问题描述】:
这似乎应该是微不足道的。我想使用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);
然后我会从documentation 假设我能够做到这一点
var ticks = t.ticks(d3.time.month,1);
...但这只会返回一个日期。
这给了我几个月的数组
var ticks = t.ticks(30)
...但只是因为我告诉它大概要生成多少滴答声(30),我不会提前知道(除非我自己做一些繁重的工作,这违背了使用 d3 的目的为了这)。
我不明白为什么只告诉它我想要每年、每月、每 3 个月或其他什么都行不通。
我在这里放了一个小提琴:http://jsfiddle.net/herbcaudill/LgGpd/4/
【问题讨论】:
-
澄清一下,我没有将它与轴对象结合使用。我只想要一个数组。
标签: javascript arrays date d3.js