d3js为时标轴设置tickValues

时间:2013-05-03 10:05:31

标签: javascript d3.js

我在官方d3.js文档中搜索过,以及在stackoverflow中搜索,以找到一种方法将自定义tickValues添加到时间轴;但是,我没有偶然发现任何证明类似的东西的文件。

所以从本质上讲,我有一个时间刻度轴,我想显示具体的时间 例如我想做这样的事情:

xHourAxis
   .ticks(d3.time.hours, 2)
   .tickFormat(d3.time.format('%I %p'))
   .tickValues(2, 4, 6, 8, 10, 12) ;

所以我想每2小时显示一次刻度值,但不包括第一个(上午12点)和最后一个(下午12点)。

有没有人知道是否有解决办法?

1 个答案:

答案 0 :(得分:0)

几乎就在那里,但是你的代码有两个问题:首先必须在数组中指定tick值,其次这些值应该是Javascript date对象。即,您只需向tickValues提供一系列日期,以便您的代码看起来像这样:

xHourAxis
 .tickFormat(d3.time.format('%I %p'))
 .tickValues([new Date(2000,10,5), new Date(2005,2,7), new Date(2007,11,11)]);

另请注意,如果您稍后要指定自定义值,则无需调用ticks()