javascript - Crossfilter/dc.js 中的假组过滤

标签 javascript dc.js crossfilter

我正在尝试了解 dc.js FAQ How do I filter the data before it's charted? 中描述的“假组”过滤方法。

请在此处查看我的示例:dc.js jsfiddle

我想在绘制图表之前按类型过滤数据(要过滤的类型将来 self 的应用程序的另一部分)。基本上,它应该与单击行图中的四个条形图(A、B、C、D)之一具有相同的效果,但我希望能够从代码中的其他位置控制它,并且它应该发生在绘制图表。

我想我需要使用Filter out bins by predicate function on the values例如,我的名为“type”的小组的方法

function filter_bins(source_group, f) {
return {
    all:function () {
        return source_group.all().filter(function(d) {
            return f(d.value);
        });
    }
};

}

但是我不清楚应该将哪个函数作为 f 传递,或者谓词函数是什么。

如果有任何帮助,我将不胜感激!谢谢。

最佳答案

如果您希望它真正表现得就像在typeRowChart中单击了该类型一样(这可能就是您想要的),然后在您想要的任何地方执行此操作:

typeRowChart.filter("A");

如果你想要typeRowChart由于某种原因保持原样(未过滤),但您想在 typeDim 上过滤,然后直接在维度上过滤并调用 dc.redrawAll() :

typeDim.filter("A");
dc.redrawAll();

如果你想要typeRowChart也要通过新选择进行过滤,然后创建一个新的类型维度并对其进行过滤:

var typeDim2 = cf.dimension(function (d) {return d.TYPE;});
typeDim2.filter("A");
dc.redrawAll();

幸运的是,我认为在这种情况下不需要假组模式。 :-)

关于javascript - Crossfilter/dc.js 中的假组过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32757624/

相关文章:

javascript - 如何在 dc.js/reductio/crossfilter 中生成滚动标准折线图

javascript - dc.js 和 crossfilter - 根本不读取 json

javascript - 突出显示事件菜单项作为页面滚动 div(侧边栏滚动菜单)

javascript - 如何在click函数中获取元素数据?

javascript - 多线图

javascript - 在 dc.js 中放大文本标签

javascript - 如何使用 dc.js 创建多线图表

javascript - 静音必须通过 HTML iframe 嵌入的 youtube 视频

javascript - 如何验证 mongoose/Hapijs 中发送的时间戳是否为 UTC?

javascript - 排除reductio.avg()中的 "missing"值