使用dc.js从barChart中删除空组

时间:2014-07-15 08:29:03

标签: javascript dc.js

我在从barChart中删除空组时遇到一些问题。

我的目的是从xAxis中删除空组(以完全隐藏它们)并使barChart相应地缩放。

阅读完dc.js faq后,我遇到了这个片段:

var group = {
 all:function () {
  return _group.all().filter(function(d) {
   return d.value != 0;
  })
 }
};

我已经添加了这样的代码:

BarChart.on("preRedraw", function(chart) {
  group = chart.group();
  group2 = {
      all: function()
          { return group.all().filter(function(d) { return (d.value.wins+d.value.losses) > 0; } ) }
  };
 chart.group(group2);
})

执行此操作会导致过多的递归"我使用的其他图表上的1-2个过滤器后出错。

group2提供了正确的结果,但似乎现有的条形图不会受到影响,或者以奇怪的方式进行,导致条纹有间隙或其他缺陷。

我尝试在功能结束时添加但没有成功。

BarChart.x(d3.scale.ordinal());
BarChart.xUnits(dc.units.ordinal);
BarChart.rescale();

我甚至尝试重新渲染图表。

有关此事的任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

初始化图表时,您只想执行此操作一次。这种虚假组是动态计算的,并且不需要在每个绘制周期中重置。

换句话说,FAQ中提到的源_group旨在成为您在初始化时传递给图表的组,并且一旦您生成假组,请将其传递给。< / p>