2

私の x、y 値は、UNIX エポック時間 (約 1 年以上) と整数で構成されています。これを使用して x 軸をグラフ化します。

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

結果は良好に見えますが、目盛りは日ベースであり (私は推測します)、何も起こっていない週末に落ち込みます。週単位で集計したいと思います。人力車が同じ週のすべての時間の y 値を結合することは可能ですか?

ここに動作するjsfiddleがあります:http://jsfiddle.net/jTmWC/

4

2 に答える 2

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を更新しました。軸の時間単位も変更したことに注意してください。必要なラベルを表示するには、少しいじる必要があるかもしれません。

于 2013-04-06T10:56:33.347 に答える
0

データの変換に d3 を使用したくない場合は、いつでも underscorejs の使用を選択できます。非常に理解しやすく、ほとんどの JavaScript プロジェクトで役立ちます。私は人力車のこのスクリーンキャストでまったく同じことをしました: http://tagtree.tv/d3-with-rickshaw-and-angular

于 2014-01-07T15:05:48.620 に答える