d3.js - 如何让人力车将数据聚合到几周而不是几天

标签 d3.js rickshaw

我的 x,y 值由 unix 纪元时间(大约一年)和一个整数组成。我用这个绘制 x 轴:

        x_axis = new Rickshaw.Graph.Axis.Time
          graph: graph

结果看起来不错,但刻度线是基于天的(我假设),并且在周末什么都没有发生时我会下降。我想根据周进行汇总。人力车是否可以将同一周内所有时间的 y 值合并在一起?

这是一个有效的 jsfiddle:http://jsfiddle.net/jTmWC/

最佳答案

您可以使用以下代码汇总每月的数据:

var aggregated = d3.nest()
               .key(function(d) { return (new Date(+d.x * 1000)).getMonth(); })
               .rollup(function(d) { return d3.sum(d, function(e) { return +e.y; }); })
               .entries(data)
               .map(function(d) { return {x: +d.key, y: d.values}; });

更新了 jsfiddle here 。请注意,我还更改了轴的时间单位 - 您可能需要稍微调整一下以使其显示您想要的标签。

关于d3.js - 如何让人力车将数据聚合到几周而不是几天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15791907/

相关文章:

charts - 如何将水平断点应用于 d3.js 条形图

javascript - D3 - 从 JSON 创建特征集

javascript - D3.js数据更新 "remembers"旧数据

javascript - d3.js 缩放不溢出

r - 如何在 rCharts Rickshaw 图表上设置悬停参数?

javascript - 如何将数据流式传输到 Node 服务器以填充人力车图表?

d3.js - 堆叠条形图 d3.js 的每个条上的文本

javascript - D3 : Cannot select an item based on its id

javascript - 将事件添加到 Rickshaw 中的 Series.Toggle

html - Nodejs + 人力车 : src= reference not working