【问题标题】:D3js Changing ticks on Zoomable Time axisD3js 更改可缩放时间轴上的刻度
【发布时间】:2015-03-09 20:00:37
【问题描述】:

背景

我有一个可缩放的时间图,我构建了以下代码:

var x = d3.time.scale().range([0, 100]);
var xAxis = d3.svg.axis()
    .scale(x)
    .tickFormat(customformatter);

当适当的间隔是年时,它显示年的刻度。月份显示月份等。

问题

这非常有效,在我放大到几周之前会产生很好的滴答声,此时我需要能够指示一周中的哪一天的滴答声(星期日、星期一等)。我知道 tickFormat 的多格式自定义生成器,您可以在其中指定给定适当间隔的格式。但是,这不会改变刻度。有没有办法设置周规则的开始,同时保持在年、月、日(等)级别存在的刻度生成? d3 库可以将默认开始日期设置为一周中的其他一天吗?


【问题讨论】:

    标签: javascript d3.js


    【解决方案1】:

    对于我自己的问题,这几乎不是一个值得推荐的答案,但如果有人绝望,一种方法是覆盖 /src/time/week.js 中的源代码:

    d3_time.week = d3_time.sunday;
    d3_time.weeks = d3_time.sunday.range;
    d3_time.weeks.utc = d3_time.sunday.utc.range;
    d3_time.weekOfYear = d3_time.sundayOfYear;
    

    只需将“星期日”换成一周中的另一天。

    【讨论】:

      猜你喜欢
      • 2013-04-27
      • 1970-01-01
      • 2014-03-02
      • 1970-01-01
      • 1970-01-01
      • 2020-05-29
      • 2018-04-13
      • 2013-11-29
      相关资源
      最近更新 更多