首页 文章

dc.js:数据子集的条形图

提问于
浏览
1

我有格式的数据

[
{ "date": dt1, "action": "T", "isRequest": "", "delay": 0 },
{ "date": dt1, "action": "C1", "isRequest": "R", "delay": 10 },
{ "date": dt1, "action": "T", "isRequest": "", "delay": 0 }, 
{ "date": dt1, "action": "C2", "isRequest": "R", "delay": 20 },
{ "date": dt1, "action": "T", "isRequest": "", "delay": 0 },
... ]

主条形图是关于计数(数组中的1行),所有延迟图表都是关于延迟分布(属性延迟)按日期过滤主图,更改所有延迟图表上的数据 .
到现在为止还挺好 .
现在,我希望另一个图表与所有延迟图表中的数据子集一起使用,同时考虑属性"action":"C1"的过滤器 . 我可以过滤原始数据并调用 crossfilter(filteredData) ,但是在主图上过滤不会反映此图表中的数据 . 我试图从Crossfilter dimension and group to filter out data below certain threshold获得灵感

示例已开启
http://jsfiddle.net/iracic/dtyeL7g7/5/

谢谢

1 回答

  • 1

    您可能希望在自定义组中实施过滤器,以便该组仅聚合符合条件的记录 . 您可以使用像Reductio这样的帮助程序库来执行此操作,并将您的组构建为:

    var dim = ndx.dimension(...);
    var group = reductio().count(true)
      .filter(function(d) { return d.action === "C1"; })(dim.group());
    

    此处文档中的示例:https://github.com/crossfilter/reductio#aggregations-standard-aggregations-reductio-b-filter-b-i-filterfn-i-

    也可以使用自定义组直接执行此操作,但这有点复杂 .

    不相关:group.reduceCount不接受参数,因此您在示例中传递给它的函数没有做任何事情 .

相关问题