D3.js D3时标仅基于小时,不受日期限制

D3.js D3时标仅基于小时,不受日期限制,d3.js,D3.js,我遇到了一个非常有趣的问题 我正在创建一个折线图,比较截至出发点的多个航班的预订和取消情况。所以X轴只能显示一个倒数小时,比如72-48-24-12-6-0,我如何使用d3s可用的线性刻度和时间刻度来实现这种刻度 我目前正在使用线性恐惧,但它的基数为10,所以不会像预期的那样工作 使用时标显示日期,但不应绑定日期,只需显示航班起飞前144小时 非常感谢你的帮助 提前感谢我找到了解决方案 我不确定这样做是否正确,但对我来说是可行的,基本上我们必须改变刻度的格式来表示分钟,而不是十进制数字 这就

我遇到了一个非常有趣的问题

我正在创建一个折线图,比较截至出发点的多个航班的预订和取消情况。所以X轴只能显示一个倒数小时,比如72-48-24-12-6-0,我如何使用d3s可用的线性刻度和时间刻度来实现这种刻度

我目前正在使用线性恐惧,但它的基数为10,所以不会像预期的那样工作

使用时标显示日期,但不应绑定日期,只需显示航班起飞前144小时

非常感谢你的帮助

提前感谢

我找到了解决方案

我不确定这样做是否正确,但对我来说是可行的,基本上我们必须改变刻度的格式来表示分钟,而不是十进制数字

这就是我所做的

创建了将十进制转换为分钟的线性比例

var dectomin = d3.scale.linear().rangeRound([0 , 60]).domain([0,1]);
并使用tickFormat功能格式化轴组件上的刻度标签

var chartXAxis  = d3.svg.axis().scale(chartXScale).orient("bottom")
                    .tickFormat(function(n){ 
                        if(n % 1 === 0) {
                            return n;                            
                        } else {
                            var f = Math.floor(n);
                            var d = n - f;
                            return f + ":" + chartXScaleTime(d);
                        }
                    });

谢谢你的想法

你知道D3中的时间刻度吗?使用
scale.ticks(d3.time.hour,/*某些函数*/)
可能可以实现您想要的功能。我试过了,但它显示的是日期,我只想显示小时而不绑定日期。那么使用线性刻度和类似于
scale.tickFormat(函数(d){/*检查有效小时,否则不返回任何值*/})
?这样的话,只有有效的小时数才有一个可见的刻度。这样就行了!非常感谢你的好主意:)