如何使用dc.js绘制聚合表?

时间:2016-10-13 15:36:51

标签: dc.js

我被一个可能微不足道的问题所困扰,但我想绘制两个按维度分组的表格。

例如:

var data=[{country:"US", medal:"gold",sport:"jump",year:"2015"},
 {country:"US", medal:"silver",sport:"jump",year:"2011"}
 {country:"CN", medal:"gold",sport:"jump",year:"2015"}}

并想画一些表格:

country   medals
US        2
CN        1

medal     qty
gold      2
silver    1

所以在crossfilter上有一个微不足道的dim +组,但是因为dataTable没有把“真正的”群体当作群体......有点卡住

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

一般来说,如果你只是给它一个dc.dataTable方法,你可以使用一个组作为bottom的维度。你可以这样做:

var cf = crossfilter(["a","a","b","b","c","d","d","d"])
var dim = cf.dimension(function(d) { return d; });
var grp = dim.group()
grp.bottom = grp.top;

var dataTable = dc.dataTable('#dataTable');

dataTable
  .dimension(grp)
  .group(function() { return ""; })
  .size(100)
  .columns(['key', 'value']);

dc.renderAll();

问题是您需要将所有必要的信息放入组中。您可以在自定义组中执行此操作,也可以创建包含组的虚假组,在其中查找其他信息,并在dataTable查询假组时将其添加到组中。