序数刻度特定选择 dc 图

Ordinal scale specific selections dc charts

我正在绘制一个基本条形图,x 轴为序号,y 轴为度量。现在,使用这个 post

效果很好

但是,现在我想select只显示特定的数据点。 示例:如果我的序号 x 轴有 - a、b 和 c。但是,我只需要显示 - b & c。

问题:

当我使用以下代码在域中仅添加 b 和 c 时,即使 a 也会出现在后台。

代码:

.x(d3.scale.ordinal().domain(["b", "c"])) // Need the empty val to offset the first value
.xUnits(dc.units.ordinal)

我做了一个fiddle来说明这个问题here

另一个能见度更高的地方是 link here(在底部寻找 序数条形图 - 从加利福尼亚开始,伦敦被排除在外,但仍在背景中)

这个 yet/or 有解决办法吗?任何 approach/suggestions 将不胜感激

我想这个问题以前有人问过,但我在快速搜索中找不到。

这就是您要使用假组的原因,因为它会改变数据的形状。 crossfilter 组将正常运行,但会有一个干预对象将拦截结果并删除特定的 bins:

function remove_bins(source_group) { // (source_group, bins...}
    var bins = Array.prototype.slice.call(arguments, 1);
    return {
        all:function () {
            return source_group.all().filter(function(d) {
                return bins.indexOf(d.key) === -1;
            });
        }
    };
}

像这样将其添加到您常用的交叉过滤器代码中:

var ndx = crossfilter(...)
var dim = ndx.dimension(...)
var group = dim.group(...) ... 

var filtered_group = remove_bins(group, 'a');

chart.dimension(dim)
    .group(filtered_group)
    ...

https://github.com/dc-js/dc.js/wiki/FAQ#remove-particular-bins