在不创建维度和图形的情况下合并行

Incorporate rows without creating dimension and graph

我想得到下一个结果https://jsfiddle.net/ajey2987/0bqjydx8/26/, 无需创建其他维度、组和图形,即无需 region2dim 和 numxregion2 以及函数 reflect_filters。

var regiondim = ndx.dimension(function(d){return d.Region;});
var regiondim2= ndx.dimension(function(d){return d.Region;});
var numxregion=regiondim.group(); 
var numxregion2=regiondim2.group();

这可能吗?

我想点击区域名称,它们被一个一个合并,并根据所选数据重新计算百分比。

问候

非常感谢

我认为这里的关键见解是组不会对自己的维度进行观察者筛选,因此您需要做的是创建 2 个维度并将 dc.js 图表设置为使用维度和组没有链接。因为 % 计算还依赖于不需要链接到过滤器维度的 groupAll 组,所以您也需要在第二个维度上创建这个组。

因此您的维度和组定义将如下所示:

var ndx = crossfilter(datos);
var regiondim = ndx.dimension(function(d) {
  return '' + d.Region;
});
var regiondim2 = ndx.dimension(function(d) {
  return '' + d.Region;
});
var numxregion2 = regiondim2.group();
var countgroup = regiondim2.groupAll().reduceCount()

你的 dc.js 图表定义看起来像这样(基于你的示例,删除了格式):

barraxregion
  .dimension(regiondim)
  .group(numxregion2)
  .title(function(d) {
    return d.value + " (" + (d.value / countgroup.value() * 100).toFixed(1) + "%)"
  })

标题显示了基于先前定义的值和总体百分比 countgroup

示例的工作版本:https://jsfiddle.net/esjewett/f4yqu8zo/1/