如何让人力车将数据汇总成数周而不是数天

Mik*_*Kay 2 d3.js rickshaw

我的x,y值包括unix纪元时间(超过一年)和整数.我使用这个绘制x轴图:

        x_axis = new Rickshaw.Graph.Axis.Time
          graph: graph
Run Code Online (Sandbox Code Playgroud)

结果看起来不错,但是刻度标记是基于日期的(我假设),并且在没有任何事情发生时我会在周末逢低.我想基于几周汇总.人力车是否有可能在同一周内的所有时间将y值组合在一起?

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

Lar*_*off 5

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

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}; });
Run Code Online (Sandbox Code Playgroud)

在这里更新了jsfiddle .请注意,我还更改了轴的时间单位 - 您可能需要稍微使用它以使其显示您想要的标签.

  • 您可以在[API文档](https://github.com/mbostock/d3/wiki/Arrays#wiki-d3_nest)中找到它们. (2认同)