0

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

我正在创建一个折线图比较多个航班的预订和取消,直到出发点。所以 X 轴必须显示只有几个小时的倒计时,如 72 - 48 - 24 - 12 - 6 - 0,我如何使用 d3s 可用的线性刻度和时间刻度来实现这些刻度。?

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

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

您的帮助将不胜感激。

在此处输入图像描述

在此处输入图像描述

提前致谢

4

1 回答 1

0

我找到了解决方案

我不确定它是否正确,但它对我有用,基本上我们必须更改刻度的格式以表示分钟而不是十进制数字

这就是我所做的

创建线性刻度以将十进制转换为分钟

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);
                        }
                    });

谢谢祈祷者这个想法

于 2013-10-09T08:10:10.577 回答