データを含む 1 つの大きな tsv から多くの視覚化オプションを取得しようとしています。d3 を使用して、多くの優れた統計を作成しています。
データは次のように構成されています: item,startdate,enddate,value
したがって、12 月または 1 月に 3 つの類似アイテムのリストがあるとします。
gasoline,20-12-2009,10-01-2010,400
gasoline,01-01-2010,31-01-2010,1000
gasoline,21-01-2010,31-01-2010,900
ご覧のとおり、ほとんどは完全に 1 月ですが、最初の項目の一部は前年の 12 月にあります。したがって、1 月の合計が必要な場合、400+1000+900 は正しくありません。
データを解析して 1 日ごとに個別のエントリを作成することはできましたが、これでは将来性がないと感じられ、厄介な丸め誤差が発生する可能性がありました。
ロード時に私はこれを行います:
data.forEach(function(d) {
d.startdate = StatsLoader.format.parse(String(d.startdate));
d.enddate = StatsLoader.format.parse(String(d.enddate));
d.period = (d.enddate - d.startdate) / StatsLoader.periodSize; // 86400000, 1 day in ms
d.value = +d.value;
});
だから私は名前、開始日と終了日、値を持つ素敵なオブジェクトを持っており、期間を日数で知っています。
今、日付範囲の合計を取得したいのですが、どこから始めればよいかわかりません。
私の通常の「合計」関数は次のようになります(複数のアイテム名を想定)
var nest = d3.nest()
.key(function(d) { return d.item; })
.entries(data);
var piechartData = [];
nest.forEach(function(n) {
piechartData.push({
name: n.key,
value: d3.sum(n.values, function(d) { return d.value; })
})
})
どういうわけかクオンタイズを使うべきだと思いますか?それともドメイン?
ありがとう!