dc.js - crossfilter + dc.js//维度组相互包含

标签 dc.js crossfilter

我有一个具有以下模型的数据源:

[
    {
        days : 3,
        value : 500
    },
    {
        days : 30,
        value : 320
    },
    {
        days : 4,
        value : 330
    },
    {
        days : 14,
        value : 300
    },
    {
        days : 44,
        value : 300
    }
]

我想创建一个 dc.js 散点图,显示三组(x 轴)的最小值、最大值和平均值(y 轴):全部、过去 10 天和过去 5 天。

到目前为止,我已经创建了这个维度:

var daysGroupsDimension = data.dimension(function(d) {
    if(d.days <= 5) {
        return 'last 5';
    } else if(d.days <= 10) {
        return 'last 10';
    } else {
        return 'all';
    }
})

但是当我对它进行分组时,它会将数据分成三组,这并不是我想要的。

我觉得这不是处理它的正确方法,但我似乎找不到类似的方法。如果有人至少能为我指明正确的方向,那就太好了!

谢谢!

最佳答案

使用 Crossfilter 1.4 的数组维度概念将单个记录放入多个组中:https://github.com/crossfilter/crossfilter/wiki/API-Reference#dimension_with_arrays

var daysGroupsDimension = data.dimension(function(d) {
    if(d.days <= 5) {
        return ['last 5', 'last 10', 'all'];
    } else if(d.days <= 10) {
        return ['last 10', 'all'];
    } else {
        return ['all'];
    }
}, true)

执行此操作,然后按此维度分组时,您将得到 3 个组:“最后 5 个”、“最后 10 个”和“全部”。 days 值 <= 5 的记录将计入所有 3 组,依此类推。

关于dc.js - crossfilter + dc.js//维度组相互包含,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48792077/

相关文章:

javascript - 交叉过滤器和D3 : Filter by group AND dimension

javascript - d3.js 不读取 JSON (d3.js + dc.js + crossfilter)

d3.js - 如何将过滤结果添加到选择菜单

javascript - Crossfilter过滤器不过滤(dc.js)

javascript - 区间树 : Uncaught TypeError: Cannot read property 'mid' of null

javascript - 开始使用 d3.js,需要哪些文件?

reactjs - DC.JS Scrollable Rowchart 在 React 中没有间隙

javascript - 为高度偏斜的数据生成直方图

javascript - 在 dc.js 中更改图例值

javascript - Crossfilter/d3.js - 我可以显示通过交叉过滤器选择的记录的分数吗?