限制折线图在dc图表库中放大几小时

时间:2015-04-06 05:36:26

标签: javascript d3.js linechart dc.js crossfilter

我们正面临着dc库线图的问题。

http://dc-js.github.io/dc.js/

以上面的链接为例,其中每月指数Abs是折线图。放大时,它在X轴上达到分钟,如 5.15,5.30,5.45 等。

我们已经定义了如下的X轴比例:它是日,月,年和小时的组合。

.x(d3.time.scale().domain([new Date(sdate.getFullYear(),sdate.getMonth(),sdate.getDate(),sdate.getHours()), new Date(edate.getFullYear(),edate.getMonth(),edate.getDate(),edate.getHours())])) // (startDate, endDate)

在此,我们尝试以两种方式将缩放限制为小时,但不起作用。

方法1:

 .zoomExtent([0, 23]);

方法2:

.zoomExtent([new Date(sdate.getFullYear(),sdate.getMonth(),sdate.getDate(),sdate.getHours()), new Date(edate.getFullYear(),edate.getMonth(),edate.getDate(),edate.getHours())]);

我们希望这种放大功能可以限制最长时间,例如下午4点,下午5点,下午6点等,而不是几分钟。

提前致谢。

1 个答案:

答案 0 :(得分:1)

使用chart.zoomScale(),用于设置d3.zoom.scaleExtent()

参数是一个包含两个元素的数组,允许的最小和最大缩放。默认情况下为[1, Infinity]

确定图表缩放和设置的最大因子。例如。如果你只想缩放20倍,请设置:

chart.zoomScale([1, 20]);

缩放是一个乘法因素。即如果在缩小图表中有20天,将数组的第二个元素设置为20可以放大到1天,或者将其设置为20 * 24可以放大到1小时等等。