Javascript D3.JS-生成日期a和;达特布

Javascript D3.JS-生成日期a和;达特布,javascript,date,d3.js,range,scale,Javascript,Date,D3.js,Range,Scale,我需要生成一个刻度,供我的应用程序参考,例如,2001年1月1日至2001年11月30日之间的日期 我需要能够将一个整数(介于1-10之间)传递到量表中,并返回一个日期 我假设D3.JS可以做到这一点,因为它可以为axis生成一个日期比例,这没问题 我试过: myDateScale = d3.scale.linear() .domain([1,10]) .range([d3.min(data, function(d) {return d.date}

我需要生成一个刻度,供我的应用程序参考,例如,2001年1月1日至2001年11月30日之间的日期

我需要能够将一个整数(介于1-10之间)传递到量表中,并返回一个日期

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

我试过:

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),我只得到一个空对象{}

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

非常感谢找到了答案

不知道为什么上面的数字不能像其他刻度(数字、颜色等)那样工作,但无论如何

因此,我们需要相互交换.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

如果翻转范围和域,则不需要使用反转。