dc.js crossfilter.js 中自定义 reduce 函数中的自定义排序
custom ordering in custom reduce functions in dc.js crossfilter.js
我有以下自定义 reduce 函数
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)并算作 radiusAccessor。如何找到所有组的最大值和最小值。我的组基于类别 'cat' 维度。
谢谢!
您可以根据组的值定义任意顺序:https://github.com/crossfilter/crossfilter/wiki/API-Reference#group_order
但是,如果您使用的是 dc.js 气泡图,我认为没有必要定义任何特定的顺序。您只需要定义适当的访问器。
通过使用 d3.extent 并传递返回数量和价格的类别组和访问器函数解决了这个问题。
我有以下自定义 reduce 函数
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)并算作 radiusAccessor。如何找到所有组的最大值和最小值。我的组基于类别 'cat' 维度。
谢谢!
您可以根据组的值定义任意顺序:https://github.com/crossfilter/crossfilter/wiki/API-Reference#group_order
但是,如果您使用的是 dc.js 气泡图,我认为没有必要定义任何特定的顺序。您只需要定义适当的访问器。
通过使用 d3.extent 并传递返回数量和价格的类别组和访问器函数解决了这个问题。