D3js更改Zoomable时间轴上的刻度

时间:2015-03-09 20:00:38

标签: javascript d3.js

背景

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

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

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

问题

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


1 个答案:

答案 0 :(得分:0)

对于我自己的问题,这不是一个值得推荐的答案,但如果有人绝望,一种方法是覆盖/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;

只需换掉'星期日'一周中的另一天。