如何保证基于维度的3个键的散点图中的画笔与其他图表交互?

时间:2016-09-14 14:48:27

标签: javascript dc.js crossfilter

如何通过在散点图维度中使用三个键来保证多图表过滤器的行为?

你可以在[https://jsfiddle.net/rogeraleite/dmf3fstw/2/]中看到

..具体在我声明散点图的尺寸的行中:

dim1 = ndx.dimension(function (d) {
    return [+d.x, +d.y, d.fruit];
    //return [+d.x, +d.y];
})

如果我评论“return [+ d.x,+ d.y,d.fruit];”并使用“return [+ d.x,+ d.y];”,则交互(刷牙)完美无缺。但是,一旦我尝试添加第三个键(d.fruit)以便为图表中的点着色,刷子就会停止工作。

知道如何处理它?<​​/ p>

1 个答案:

答案 0 :(得分:0)

我只是意识到为了保持交互工作,我必须在维度创建中仅使用两个键。但是,要创建组,我可以使用具有两个以上键的另一个维度,这将保证正确的行为。

https://jsfiddle.net/rogeraleite/L8mjrnr1/

    dim1 = ndx.dimension(function (d) {
        return [+d.x, +d.y];
    }),
    dim1_2 = ndx.dimension(function (d) {
        return [+d.x, +d.y, d.fruit];
    }),
    dim2 = ndx.dimension(function (d) {
        return [+d.y, +d.z];
    }),
    dim2_2 = ndx.dimension(function (d) {
        return [+d.y, +d.z, d.fruit];
    }),
    group1 = dim1_2.group(),
    group2 = dim2_2.group();

...所以当colorAccessor尝试访问第三个键(d.key [2])时,它可以工作! = d

.colorAccessor(function(d) { return d.key[2]; })