をcrossfilter.js dc.jsに機能を削減私は、カスタム次いるカスタムオーダー
function reduceAdd(p, v) {
p.vol_t += v.oqt;
p.prc_t += v.it;
++p.count;
// p.average = d3.round((p.total/p.count), 2);
return p;
}
function reduceRemove(p, v) {
p.vol_t -= v.oqt;
p.prc_t -= v.it;
--p.count;
// p.average = d3.round((p.total/p.count), 2);
return p;
}
function reduceInitial() {
return {
vol_t: 0.0,
prc_t: 0.0,
count: 0,
};
}
私のデータモデルの機能を減らす、次のとおりです。
[{cat:'a', oqt:23.0, it: 45.0},
{cat:'b', oqt:25.0, it: 5.0},
{cat:'b', oqt:22.0, it: 25.0},
{cat:'c', oqt:17.0, it: 35.0}]
私がプロットしようとしていますバリューチャートのdc.jsにvol_tをX(keyAccessor)、prc_tをY軸(valueAccessor)としてカウントし、radiusAcessorとしてカウントします。すべてのグループで最大値と最小値を見つけるにはどうしたらいいですか?私のグループはカテゴリ 'cat'ディメンションに基づいています。
ありがとうございます!
私の軸のドメインと範囲に必要です。私は、最上位(1)[0]の順番で最大値、最小値を計算したいと考えていました。したがって、X軸の場合はボリュームで注文し、Y軸の場合は価格で注文する必要があります。 – bashhike
ドメインを一度設定する場合は、このためにCrossfilterを使用しないでください。データを数値のリストに変換し(Array.mapを使用)、Math.minとMath.maxを使用するだけです。必要に応じてd3.extentを使用してください。 elasticX/elasticYを使用している場合は、dc.jsがこれを処理すると思います。 –