javascript - 如果 dc.js 饼图/图例中的值为 0,则隐藏这些条目

标签 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();
}

最佳答案

dc.js 2.0 在基本 mixin 上有一个 .data() 函数,它允许您在大多数情况下预先过滤组。

它适用于饼图,但会干扰上限。

BaseMixin.data() docs

请参阅此问题的示例:

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

一个更通用但更丑陋的解决方案是 fake group .

关于javascript - 如果 dc.js 饼图/图例中的值为 0,则隐藏这些条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22072408/

相关文章:

javascript - 单击时如何使标签不透明?

charts - 在 SSRS 2008 中动态定位垂直 StripLine

javascript - ChartJS 均匀分配点

javascript - d3.js map 上的跳动标记点

javascript - 通过 Javascript 检测移动设备

javascript - 从 jscript 执行 php url

javascript - 悬停到 div 以更改其他元素的样式

javascript - 如何配置图表 x 轴标签?

Javascript 返回或赋值?

javascript - d3.each() 一次存储一个值,而不是一次存储所有值