javascript - 在 dc 图表库中限制折线图放大最多小时

标签 javascript d3.js linechart dc.js crossfilter

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

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

以上面的链接为例,其中每月指数绝对值是折线图。当您放大时,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)

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

方法一:

 .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 点等,而不是分钟。

提前致谢。

最佳答案

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

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

确定您希望图表缩放和设置的最大系数。例如。如果您只想缩放 20 倍,请设置:

chart.zoomScale([1, 20]);

缩放是一个乘法因子。 IE。如果缩小的图表中有20天,则将数组的第二个元素设置为20将允许您放大到1天,或者将其设置为20*24将允许您放大到1小时,依此类推。

关于javascript - 在 dc 图表库中限制折线图放大最多小时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29465884/

相关文章:

javascript - Chart.js 折线图中最后 3 小时数据值的总和

javascript - 从任何地方访问 Singleton

javascript - 在 Jquery detach() 和 appendTo() 之后定位元素

d3.js - 使用 PostGIS 和 D3 绘制水深图

javascript - 可点击图表数据点以打开新页面

javascript - 悬停工具提示上的 Google 折线图未显示值

javascript - Highchart 组具有相同日期的图表点

javascript - 在多步注册表单中使用 react-router 时出错

javascript - 带分隔符的三个可选部分的正则表达式

json - d3 : us states in topojson format filesize is way too large