Javascript 使用d3和dc.js自定义时间线勾选
我有下一张图表:Javascript 使用d3和dc.js自定义时间线勾选,javascript,d3.js,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分钟的间隔: 在我放大后,我有一张糟糕的
scrollChart
...
.x(d3.time.scale().domain([startDate, endDate]))
.round(d3.time.minutes)
.alwaysUseRounding(true)
.xUnits(d3.time.minutes);
如何更改.xUnits
和.round
以每5/10/15分钟为一个时间间隔
更新:
戈登的回答有帮助,但放大后我有了新问题
这是5分钟的间隔:
在我放大后,我有一张糟糕的图表:(在过滤后,我如何将所有的内容“重新组合”到1分钟的间隔?这是真的吗
谢谢你的帮助。
我使用了d3.js版本3和主题。
首先,您需要复制d3\u time\u 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();
只影响画笔舍入。您可能希望按您感兴趣的时间间隔进行聚合。@Gordon您是对的,但我需要自定义时间间隔,而不是
月
,日
,小时
明白了,也许可以尝试此线程?@Gordon谢谢,这很有帮助。也许可以在回答中写更多信息r其他人。我现在还有一个问题,你能帮帮我吗?我更新了我的帖子。是的,那是一个。基本上,它会将点过滤到域内的点,当它需要保持一个点的边缘。虽然我在一个分支中有一个全面的修复,但它需要更多的工作,所以我现在会尝试在一个标志下推动一个解决方案。我很明显,它已经困扰我很长时间了。