使用数据计数小部件显示不同项目的数量
display the number of distinct items with data count widget
我有一个项目列表,其中一些项目有几行是同一项目(同一项目的不同变体)。
我想统计一共存在多少条,选中了多少条。但是,当我使用数据计数小部件时,默认情况下它仅适用于行数,但无法弄清楚如何更改该行为。
var data=[{"item":"Category A","color":"blue"},
{"item":"Category B","color":"blue"},
{"item":"Category A","color":"pink"}];
var ndx = crossfilter(data);
var dimension = ndx.dimension(function(d) {return d.item;});
var all = ndx.groupAll();
dc.dataCount('.dc-data-count')
.dimension(ndx)
.group(all)
.html ({some: "%filter-count selected out of %total-count items <a class='btn btn-default btn-xs' href='javascript:dc.filterAll(); dc.renderAll();' role='button'>Reset filters</a>", all: "%total-count items. Click on the graphs to filter them"})
根据 dc 文档,唯一可能的维度是整个数据集,唯一的组是 dimension.groupAll()
返回的那一组
是否有解决方法来计算除记录数以外的其他内容(例如 ndx.dimension(function(d) {return d.item;});?
好吧,它很丑陋,但您可以轻松破解它以产生其他行为。
如果您查看代码,它仅在维度上调用 .size()
,并且仅在组上调用 .value()
。这就是为什么文档说只有 groupAll 是合适的;常规组没有 .value()
.
https://github.com/dc-js/dc.js/blob/develop/src/data-count.js#L93-94
但它不会调用维度或组上的其他方法,因此您可以很容易地伪造它:
chart.dimension({size: function() {
return 42; // calculate something here
} });
使用两个数字显示小部件可能更合适,但这应该可行。
我有一个项目列表,其中一些项目有几行是同一项目(同一项目的不同变体)。
我想统计一共存在多少条,选中了多少条。但是,当我使用数据计数小部件时,默认情况下它仅适用于行数,但无法弄清楚如何更改该行为。
var data=[{"item":"Category A","color":"blue"},
{"item":"Category B","color":"blue"},
{"item":"Category A","color":"pink"}];
var ndx = crossfilter(data);
var dimension = ndx.dimension(function(d) {return d.item;});
var all = ndx.groupAll();
dc.dataCount('.dc-data-count')
.dimension(ndx)
.group(all)
.html ({some: "%filter-count selected out of %total-count items <a class='btn btn-default btn-xs' href='javascript:dc.filterAll(); dc.renderAll();' role='button'>Reset filters</a>", all: "%total-count items. Click on the graphs to filter them"})
根据 dc 文档,唯一可能的维度是整个数据集,唯一的组是 dimension.groupAll()
返回的那一组是否有解决方法来计算除记录数以外的其他内容(例如 ndx.dimension(function(d) {return d.item;});?
好吧,它很丑陋,但您可以轻松破解它以产生其他行为。
如果您查看代码,它仅在维度上调用 .size()
,并且仅在组上调用 .value()
。这就是为什么文档说只有 groupAll 是合适的;常规组没有 .value()
.
https://github.com/dc-js/dc.js/blob/develop/src/data-count.js#L93-94
但它不会调用维度或组上的其他方法,因此您可以很容易地伪造它:
chart.dimension({size: function() {
return 42; // calculate something here
} });
使用两个数字显示小部件可能更合适,但这应该可行。