如果过滤后 dc.js 中的行图值为零,我们如何隐藏。我们有这样的代码:
var kurum=data.dimension(function(d){return ""+ d.KURUM;});
var kurumGroup=kurum.group().reduceSum(function(d){return +d.INSIDANS});
kurumRowMapChart
.width(300)
.height(200)
.margins({top: 5, left: 10, right: 10, bottom: 20})
.dimension(kurum)
.group(kurumGroup)
.colors(d3.scale.category10())
.elasticX(true)
.ordering(function(d) { return -d.value })
.xAxis().ticks(4);
此代码正常工作,但我们希望在值为零时隐藏过滤器。
谢谢
最佳答案
您可以创建一个“假组”,当 .all()
时删除包含零的垃圾箱叫做:
function remove_empty_bins(source_group) {
return {
all:function () {
return source_group.all().filter(function(d) {
return d.value != 0;
});
}
};
}
像这样使用它:
var filtered_group = remove_empty_bins(kurumGroup);
kurumRowMapChart.dimension(kurum)
.group(filtered_group)
...
https://github.com/dc-js/dc.js/wiki/FAQ#remove-empty-bins
这个想法是创建一个位于 crossfilter 和 dc.js 之间的对象,它看起来像一个 crossfilter 组并根据需要对其进行过滤。
这是一个有点复杂的示例,旨在测试不同数量的柱之间的转换:
http://dc-js.github.io/dc.js/transitions/ordinal-row-transitions.html
(目前过渡不是很好,但它很好地展示了
remove_empty_bins
。)
关于dc.js - 如果值为零,如何隐藏 dc.js 行图值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27305546/