2013-05-03 79 views
5

我已经在官方d3.js文档中搜索,以及在这里在stackoverflow中找到一种方法来添加自定义tickValues到时间轴;不过,我还没有发现任何确认类似的文档是可能的。d3js设置tickValues时间轴

因此,本质上,我有一个时间轴,我想显示具体的小时 例如,我想要做这样的事情:

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

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

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

+1

如果你还使用'tickValues()',不要指定'ticks()'。您指定的时间值必须是时间值,但除此之外它应该起作用。它怎么不适合你? – 2013-05-03 11:21:01

+0

它只是不显示我通过的值的任何蜱虫;即使我摆脱了蜱() – ppoliani 2013-05-07 17:58:45

+2

正如我所说的,你需要传递日期对象而不仅仅是整数。 – 2013-05-07 19:24:47

回答

0

差不多,但是你的代码有两个问题:首先tick值必须在数组中指定,其次这些值应该是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()如果你要稍后指定自定义值。