如何在 dc.js 中显示前 N 个之前过滤 NaN?
How to Filter NaNs before Displaying top N in dc.js?
直截了当的问题,但我没有在任何地方看到答案。基本上,我想针对一个指标过滤我的 NaN 数据集,然后显示该指标的前 10 个最高组。我正在使用假组方法,但我似乎无法同时使用条形图的顶部和过滤器。
function remove_empty_bins(source_group) {
return {
all:function () {
return source_group.top(10).filter(function(d) {
return ! isNaN(d.value.attendance_rate) ;
});
}
};
}
此代码无效,因为我认为顶部只采用按键排序的前 10 个。如果我想按指标排序,我需要使用 chart.ordering() 但显然我不能使用它,因为我需要在执行 .top().
之前进行排序
有什么想法吗?
我认为您没有使用支持封顶(饼图、行)的图表之一。对于那些您应该能够使用假组过滤掉 NaN,然后将数据传入。
自 2.1.2 起,dc.js has not used group.top()
在内部用于封顶图表。 top和ordering的交互太混乱了
我建议按照更改这些图表的方式来解决您的问题。与其尝试使用 group.top()
,不如自己进行排序。然后就可以很容易地获取所有、过滤、排序和上限(未测试):
function filter_sort_cap_bins(source_group) {
return {
all:function () {
return source_group
.all()
.filter(d => !isNaN(d.value.attendance_rate))
.sort((a,b) => b.value.attendance_rate - a.value.attendance_rate)
.slice(0, 10);
}
};
}
理论上这可能会慢一点,因为它要处理整组密钥,但我认为除非您有数千个密钥,否则您不会注意到任何差异。
直截了当的问题,但我没有在任何地方看到答案。基本上,我想针对一个指标过滤我的 NaN 数据集,然后显示该指标的前 10 个最高组。我正在使用假组方法,但我似乎无法同时使用条形图的顶部和过滤器。
function remove_empty_bins(source_group) {
return {
all:function () {
return source_group.top(10).filter(function(d) {
return ! isNaN(d.value.attendance_rate) ;
});
}
};
}
此代码无效,因为我认为顶部只采用按键排序的前 10 个。如果我想按指标排序,我需要使用 chart.ordering() 但显然我不能使用它,因为我需要在执行 .top().
之前进行排序有什么想法吗?
我认为您没有使用支持封顶(饼图、行)的图表之一。对于那些您应该能够使用假组过滤掉 NaN,然后将数据传入。
自 2.1.2 起,dc.js has not used group.top()
在内部用于封顶图表。 top和ordering的交互太混乱了
我建议按照更改这些图表的方式来解决您的问题。与其尝试使用 group.top()
,不如自己进行排序。然后就可以很容易地获取所有、过滤、排序和上限(未测试):
function filter_sort_cap_bins(source_group) {
return {
all:function () {
return source_group
.all()
.filter(d => !isNaN(d.value.attendance_rate))
.sort((a,b) => b.value.attendance_rate - a.value.attendance_rate)
.slice(0, 10);
}
};
}
理论上这可能会慢一点,因为它要处理整组密钥,但我认为除非您有数千个密钥,否则您不会注意到任何差异。