dc.js:包括计数为零时的所有柱

dc.js: include all bars when count is zero

我需要在图表中包含所有条形。示例:我有五个小节 (1,2,3,4,5),得分为 reduceCount。当所有条形都有值时,图形就可以了。

但是,当条形图没有值(在本例中为一个)时:

我尝试添加 .y(d3.scale.ordinal().domain([1, 2, 3, 4, 5])),但行图表中不存在此方法。

您可以使用 "fake group" 来确保 bin 存在,即使没有任何值可以填充它们。

From the FAQ:

function ensure_group_bins(source_group) { // (source_group, bins...}
    var bins = Array.prototype.slice.call(arguments, 1);
    return {
        all:function () {
            var result = source_group.all().slice(0), // copy original results (we mustn't modify them)
                found = {};
            result.forEach(function(d) {
                found[d.key] = true;
            });
            bins.forEach(function(d) {
                if(!found[d])
                    result.push({key: d, value: 0});
            });
            return result;
        }
    };
};

这样使用:

var mod_group = ensure_group_bins(your_group, 1, 2, 3, 4, 5);
chart.group(mod_group)

我不会在这里使用.data(),因为它可以interfere with capped charts,其中图表是其中之一。 (尽管期望它起作用是完全合理的。)