【问题标题】:Crossfilter of data not working using function使用函数的数据的交叉过滤器不起作用
【发布时间】:2015-06-30 16:45:19
【问题描述】:

我有一个 id 和 distance 的数据,如下所示

var data=[
{"id":1,"distance":0.506},
{"id":2,"distance":0.506},
{"id":3,"distance":0.506},
{"id":4,"distance":0.506},
{"id":5,"distance":0.506},
{"id":6,"distance":0.106},
{"id":7,"distance":0.0065},
{"id":8,"distance":0.106},
{"id":9,"distance":0.106}
]

我想对数据进行交叉过滤,以便只有距离大于 0.2 的数据保留在过滤器之后。我正在使用以下代码进行交叉过滤。但它不起作用。

var ndr=crossfilter(data);
var fild=ndr.dimension(function(d){if(d.distance>=0.2){return d;}});
data=fild.top(Infinity);

所以输出数据应该如下

var filtereddata=[
    {"id":1,"distance":0.506},
    {"id":2,"distance":0.506},
    {"id":3,"distance":0.506},
    {"id":4,"distance":0.506},
    {"id":5,"distance":0.506}
    ]

谁能帮我解决这个问题?

【问题讨论】:

标签: d3.js crossfilter


【解决方案1】:

我找到了解决方案。这是工作代码

var ndr=crossfilter(data);
var fild=ndr.dimension(function(d){return d;});
var fildata=fild.filterFunction(function(d){if(d.distance>=0.2){return d;}});
data=fild.top(Infinity);

【讨论】:

    猜你喜欢
    • 2012-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-11
    • 2013-05-04
    • 1970-01-01
    • 2020-11-29
    • 2014-08-09
    相关资源
    最近更新 更多