0

我需要生成一个刻度,以供我的应用程序参考,例如 01/01/2001 - 30/11/2001 之间的日期。

我需要能够将一个 int(1-10 之间)传递到刻度中并返回一个日期。

我假设 D3.JS 可以做到这一点,因为它可以为轴生成日期比例没问题。

我努力了:

myDateScale = d3.scale.linear()
            .domain([1,10])
            .range([d3.min(data, function(d) {return d.date}), d3.max(data, function(d) {return d.date})]);

当我尝试引用这个比例时:myDateScale(1),我只是得到一个空的 Object{}?!

我尝试将比例更改为 d3.time.scale() 但结果仍然相同。

非常感谢

4

1 回答 1

0

找到了答案...

不知道为什么以上不能像其他比例(数字、颜色等)一样工作,但没关系。

所以我们需要将 .domain 和 .range 相互交换,然后使用.invert来获取返回的日期。

myDateScale = d3.time.scale()
.range([d3.min(data, function(d) {return d.date}), d3.max(data, function(d) {return d.date})])
    .domain([1,10]);

myDateScale.invert(5); // returns a date midway between dateA & dateB
于 2013-07-28T12:32:50.197 回答