自定义排序自定义减少dc.js中的函数crossfilter.js

时间:2016-04-07 10:10:09

标签: d3.js dc.js crossfilter reductio

我有以下自定义缩减功能

  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。如何在所有组中找到最大值和最小值。我的小组基于“猫”维度类别。

谢谢!

2 个答案:

答案 0 :(得分:2)

您可以根据组的值https://github.com/crossfilter/crossfilter/wiki/API-Reference#group_order

为组定义任意顺序

但是,如果您使用的是dc.js气泡图,我认为没有必要定义任何特定的排序。您只需要定义适当的访问者。

答案 1 :(得分:1)

使用d3.extent解决它并传递类别组和访问器函数返回音量和价格。