【问题标题】:d3js set tickValues for time scale axisd3js为时间刻度轴设置tickValues
【发布时间】:2013-04-27 16:59:06
【问题描述】:

我在官方 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 点)。

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

【问题讨论】:

  • 如果您还使用tickValues(),请不要指定ticks()。您指定的刻度值需要是时间值,但除此之外它应该可以工作。它怎么不适合你?
  • 它只是不显示我传递的值的任何刻度;即使我摆脱了 ticks()
  • 正如我所说,您需要传递日期对象而不仅仅是整数。

标签: javascript d3.js


【解决方案1】:

差不多了,但是您的代码有两个问题:首先,刻度值必须在数组中指定,其次这些值应该是 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()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-13
    • 1970-01-01
    • 1970-01-01
    • 2014-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多