5

我已经在官方 d3.js 文档以及在 stackoverflow 中进行了搜索,以找到一种将自定义刻度值添加到时间刻度轴的方法;但是,我没有偶然发现任何确认类似事情是可能的文档。

所以本质上,我有一个时间尺度轴,我想显示特定的时间,例如我想做这样的事情:

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

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

有谁知道是否有任何解决方法?

4

1 回答 1

0

快到了,但您的代码有两个问题:首先,刻度值必须在数组中指定,其次这些值应该是 Javascript 日期对象。即您只需提供一个日期数组,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()另外,请注意,如果您稍后要指定自定义值,则无需调用。

于 2017-02-17T17:52:41.017 回答