如果dc.js饼图/图例的值为0,则隐藏它们

时间:2014-02-27 15:06:12

标签: javascript charts d3.js dc.js

在dc.js中使用饼图时,如果值为0,有没有办法隐藏饼图?

在我用来生成饼图的代码中,您可以看到我的密钥是一个包含多个指标的对象。如果给定的度量值为0,我想隐藏图表中的饼图。

Summary.prototype.drawPie = function (name, metric, selector, labelFormatter) {
  var chart = dc.pieChart(selector, this.chartGroup);

  chart.width(200).height(200)
    .slicesCap(7)
    .dimension(this.dimension)
    .group(this.group)
    .valueAccessor(function (d) { return d.value[metric]; })
    .legend(dc.legend().x(10).y(225).gap(5).horizontal(true).itemWidth(100).legendWidth(200))
    .minAngleForLabel(.75)
    .label(function (d) {
      if (d.key == 'Others') {
        return labelFormatter(d.value);
      } else {
        return labelFormatter(d.value[metric]);
      }
    })
    .title (function (d) {
      var value = (d.key == 'Others' ? d.value : d.value[metric]);
      return d.key + ': ' + labelFormatter(value);
    })
    .ordering(function (d) { return 0-d.value[metric]; });
  this.charts[name] = chart;
  chart.render();
}

1 个答案:

答案 0 :(得分:1)

dc.js 2.0在基础mixin上有一个.data函数,可以让你在大多数情况下预先过滤这些组。它应该适用于饼图。

https://github.com/dc-js/dc.js/blob/master/web/docs/api-latest.md#datacallback

请参阅此问题以获取示例:

https://github.com/dc-js/dc.js/issues/494