【问题标题】:D3.JS - Generate a range of dates between DateA & DateBD3.JS - 生成日期和日期之间的日期范围
【发布时间】:2013-07-28 11:21:24
【问题描述】:

我需要生成一个刻度,以供我的申请参考,例如 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() 但结果仍然相同。

非常感谢

【问题讨论】:

    标签: javascript date d3.js range scale


    【解决方案1】:

    找到答案了……

    不知道为什么上面的内容不像其他比例(数字、颜色等)那样工作,但没关系。

    所以我们需要将 .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
    

    【讨论】:

    • 如果你翻转范围和域,你应该不需要使用反转。
    猜你喜欢
    • 2011-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-24
    • 1970-01-01
    • 2022-11-02
    • 2018-06-17
    相关资源
    最近更新 更多