2013-04-03 38 views
2

我的x,y值由unix時代(超過一年)和一個整數組成。我繪製使用這個x軸:如何獲取人力車將數據彙總爲幾周而不是幾天

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

結果看起來不錯,但刻度線是基於天(我認爲),我得到逢低在週末的時候什麼也沒有發生。我想按星期彙總。人力車是否有可能在同一周的所有時間將y值合併在一起?

這裏有一個工作的jsfiddle:http://jsfiddle.net/jTmWC/

+0

聽起來好像這是在將數據傳遞給圖形函數之前應該做的事情。您沒有向我們展示您從何處獲取數據或使用何種格式,因此我們無法真正幫助您。 –

+0

我可以手動聚合到幾個星期 - 但似乎某種映射到天必須發生,所以我希望我可以改爲映射到幾天。 (請參閱上面的小提琴網址) –

+0

您看到的「貼圖」實際上只是d3以合理方式設置的刻度標籤。它不會自己進行任何聚合。 –

回答

4

您可以使用此代碼彙總每月數據:

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

謝謝拉爾斯。我正在尋找幾個星期與一個月,但我可以弄清楚。嵌套,關鍵和彙總的文檔在哪裏? –

+2

您可以在[API文檔](https://github.com/mbostock/d3/wiki/Arrays#wiki-d3_nest)中找到它們。 –

相關問題