在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();
}
答案 0 :(得分:1)
dc.js 2.0在基础mixin上有一个.data
函数,可以让你在大多数情况下预先过滤这些组。它应该适用于饼图。
https://github.com/dc-js/dc.js/blob/master/web/docs/api-latest.md#datacallback
请参阅此问题以获取示例: