dc.js rowChart topN 没有零
dc.js rowChart topN without zeros
我需要显示大型数据集中的前 20 个警报。
标准 dc.js 效果很好,在 rowChart 中使用 .rowsCap(20) 使我获得了前 20 名。
当数据被过滤到 20 个条目以下时,我现在正尝试删除零行。几个类似的已发布问题指向 https://github.com/dc-js/dc.js/wiki/FAQ#filter-the-data-before-its-charted 中的 remove_empty_bins() 如果我删除 .rowsCap(20) 但失败我将两者结合起来,它可以正常工作。
使用 dc.js-2.0.0-beta.1 它在第 3415 行对 group.top(_cap) 调用失败,因为 .top 属性对于由 remove_empty_bins().
在定义假组时尝试添加 .top(20) 时出现同样的错误。
有没有一种简单的方法可以将 remove_empty_bins(original_group) 与 .top() 或 .rowCaps() 结合起来用于 rowChart ?
--妮可
只是把.top(n)
加到fake组稍微复杂一点:
function remove_empty_bins(source_group) {
function non_zero_pred(d) {
return d.value != 0;
}
return {
all: function () {
return source_group.all().filter(non_zero_pred);
},
top: function(n) {
return source_group.top(Infinity)
.filter(non_zero_pred)
.slice(0, n);
}
};
}
效率并不完美,因为这会按排序顺序获取所有组,然后抛出除第一个 n
之外的所有组,而 crossfilter 只能拉取第一个 n
使用堆。但这应该无关紧要,除非组数很大。
你的 fiddle 的工作叉:http://jsfiddle.net/gordonwoodhull/za8ksj45/3/
编辑:请注意,在 dc.js 2.1.2 中不再需要提供 group.top()
,因为该功能与 chart.ordering()
重叠并导致令人困惑的错误。 (以及使这些数据预处理器难以编写。)
我需要显示大型数据集中的前 20 个警报。
标准 dc.js 效果很好,在 rowChart 中使用 .rowsCap(20) 使我获得了前 20 名。
当数据被过滤到 20 个条目以下时,我现在正尝试删除零行。几个类似的已发布问题指向 https://github.com/dc-js/dc.js/wiki/FAQ#filter-the-data-before-its-charted 中的 remove_empty_bins() 如果我删除 .rowsCap(20) 但失败我将两者结合起来,它可以正常工作。
使用 dc.js-2.0.0-beta.1 它在第 3415 行对 group.top(_cap) 调用失败,因为 .top 属性对于由 remove_empty_bins().
在定义假组时尝试添加 .top(20) 时出现同样的错误。
有没有一种简单的方法可以将 remove_empty_bins(original_group) 与 .top() 或 .rowCaps() 结合起来用于 rowChart ?
--妮可
只是把.top(n)
加到fake组稍微复杂一点:
function remove_empty_bins(source_group) {
function non_zero_pred(d) {
return d.value != 0;
}
return {
all: function () {
return source_group.all().filter(non_zero_pred);
},
top: function(n) {
return source_group.top(Infinity)
.filter(non_zero_pred)
.slice(0, n);
}
};
}
效率并不完美,因为这会按排序顺序获取所有组,然后抛出除第一个 n
之外的所有组,而 crossfilter 只能拉取第一个 n
使用堆。但这应该无关紧要,除非组数很大。
你的 fiddle 的工作叉:http://jsfiddle.net/gordonwoodhull/za8ksj45/3/
编辑:请注意,在 dc.js 2.1.2 中不再需要提供 group.top()
,因为该功能与 chart.ordering()
重叠并导致令人困惑的错误。 (以及使这些数据预处理器难以编写。)