我正在尝试使用dc.js创建一个气泡图,它将为每个数据行创建一个气泡图,并将被同一页上的其他图表过滤。最初的气泡图是正确创建的,但是当从另一个图表中筛选项目并从组中添加或删除项目时,它们看起来像是应用到了错误的组中。我不确定我在分组或维度上搞乱了什么。我已经创建了一个example fiddle here
这里有一个简单的饼图来过滤filterColumn,一个气泡图使用identifer1、一个唯一的字段作为维度,xVal、yVal和rVal来显示数据,还有一个dataTable来显示当前记录。
我已经尝试了其他自定义组函数,但切换到FAQ中的示例仍然存在问题。
var
filterPieChart=dc.pieChart("#filterPieChart"),
bubbleChart = dc.bubbleChart('#bubbleChart'),
dataTable = dc.dataTable('#data-table');
var
bubbleChartDim=ndx.dimension(dc.pluck("identifier1")),
filterPieChartDim=ndx.dimension(dc.pluck("filterColumn")),
allDim = ndx.dimension(function(d) {return d;});
var filterPieChartGroup=filterPieChartDim.group().reduceCount();
function reduceFieldsAdd(fields) {
return function(p, v) {
fields.forEach(function(f) {
p[f] += 1*v[f];
});
return p;
};
}
function reduceFieldsRemove(fields) {
return function(p, v) {
fields.forEach(function(f) {
p[f] -= 1*v[f];
});
return p;
};
}
function reduceFieldsInitial(fields) {
return function() {
var ret = {};
fields.forEach(function(f) {
ret[f] = 0;
});
return ret;
};
}
var fieldsToReduce=['xVal', 'yVal', 'rVal'];
var bubbleChartGroup = bubbleChartDim.group().reduce(
reduceFieldsAdd(fieldsToReduce),
reduceFieldsRemove(fieldsToReduce),
reduceFieldsInitial(fieldsToReduce)
);
filterPieChart
.dimension(filterPieChartDim)
.group(filterPieChartGroup)...;
bubbleChart
.dimension(bubbleChartDim)
.group(bubbleChartGroup)
.keyAccessor(function (p) { return p.value.xVal; })
.valueAccessor(function (p) { return p.value.yVal; })
.radiusValueAccessor(function (p) { return p.value.rVal; })...;
https://stackoverflow.com/questions/50609432
复制相似问题