1

データを含む 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; })
    })
})

どういうわけかクオンタイズを使うべきだと思いますか?それともドメイン?

ありがとう!

4

1 に答える 1