我的x,y值包括unix纪元时间(超过一年)和整数。我用这个来绘制x轴图:
x_axis = new Rickshaw.Graph.Axis.Time
graph: graph
结果看起来不错,但是刻度标记是基于日期的(我假设),并且在没有任何事情发生时我会在周末逢低。我想基于几周汇总。人力车是否有可能在同一周的所有时间将y值组合在一起?
这是一个有效的jsfiddle:http://jsfiddle.net/jTmWC/
答案 0 :(得分: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}; });
更新了jsfiddle here。请注意,我还更改了轴的时间单位 - 您可能需要稍微调整它以显示所需的标签。
答案 1 :(得分:0)
如果您不想使用d3转换数据,您可以随时选择使用underscorejs。它在大多数JavaScript项目中都很容易理解和有用。我在人力车的这个截屏视频中做了同样的事情:http://tagtree.tv/d3-with-rickshaw-and-angular