javascript - 使用 d3 和 dc.js 自定义时间线刻度

标签 javascript d3.js dc.js

我有下一张图表:

scrollChart
   ...
   .x(d3.time.scale().domain([startDate, endDate]))
   .round(d3.time.minutes)
   .alwaysUseRounding(true)
   .xUnits(d3.time.minutes);

如何更改 .xUnits.round 以使用每 5/10/15 分钟作为时间间隔?

更新:

戈登的回答有帮助,但缩放后我遇到了新问题。

这是 5 分钟间隔: enter image description here

缩放后,我的图表很糟糕:(过滤后如何将所有内容“重新分组”到 1 分钟间隔?这是真的吗?

enter image description here

最佳答案

谢谢Gordon求助。 我使用了 d3.js 版本 3 和 this话题。 首先,您需要复制d3_time_interval函数,因为它没有公开。

接下来我创建了函数并在分组中使用它。

const n_minutes_interval = (nMins) => {
    let denom = 6e4*nMins;
    return d3_time_interval(
         date => new d3_date(Math.floor(date / denom) * denom,
        (date, offset) => date.setTime(date.getTime() + Math.floor(offset) * denom, 
        date => date.getMinutes());
}

let myTimeInterval = n_minutes_interval(5);
let myGroup = dim.group(d => myTimeInterval(d)).someReduceFunction();

关于javascript - 使用 d3 和 dc.js 自定义时间线刻度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44655932/

相关文章:

javascript - 自动填充输入,以逗号或空格分隔

javascript - 我的 id 值在传递到其他 Blade 后未从第一个数字读取数字 0

javascript - 关于 DOM 的 d3 错误

javascript - d3 csv 解析器处理进度值

javascript - dc.js 时间格式错误

javascript - dc js - 创建多列维度

javascript - 动态更新指令 (1.2 rc3)

javascript - 如何在 highcharts 上只显示最后一个数据点?

angularjs - d3.js - Jasmine 测试调用 svg 元素上的单击

crossfilter - 交叉过滤器维度计数的 DC.js 直方图