如何使D3轴标签和刻度有条件的日期范围从一天到几年?

时间:2014-06-21 05:02:05

标签: javascript svg d3.js

我有一个d3图表,轴的日期范围可以从一天到5年。我根据两个选定日期之间的差异设置了刻度格式,并将固定刻度设置为7.

这是我的代码:

xAxis = d3.svg.axis()
    .scale(xRange)
    .orient("bottom")
    .tickFormat(function(d, i) {
        var timeFormatter = d3.time.format(getXTimeFormat(currentDateExtents[0], currentDateExtents[1], d,      i));
                return timeFormatter((new Date(d)));
   })
   .ticks(7)

我还为每个开始日期设置了独特的格式,例如:10月4日上午4点。上午10点。上午4点... 原点的时间总是从午夜12点开始,并且产生原点后的第一个刻度显示10Jun 但是10-17或11jun的时间是凌晨1点,这似乎是不寻常的。

如何使d3在原点10jun开始轴,然后每个子请求滴答为某个时间值,但在第二天开始时,将此刻度时间设为上午12点。

这在选择一天或超过7天或6天时有效。 但是这两者之间的任何事情,如果我选择2或3天,则不会从午夜开始计时。

如果d3支持

,所有问题都可以解决
.ticks(function(){return d3.time.hours/days/months;},function(){return tickInterval;)).

任何建议将不胜感激。 感谢

0 个答案:

没有答案