我实现了一个dc.js
的脚本,它有一个范围图表和一个条形图。如果过滤范围图表,条形图将受到影响。遗憾的是,当过滤器仅适用于一个元素时,条形宽度的渲染有时会失败。这是一个包含错误的屏幕截图:
如果我选择多个元素,它可以工作:
我在处理序数量表时遇到sth.
错误吗?
以下是相关代码:
//fake group, which sorts the elements and
//removes items with value smaller than one
var removeEmptyBinsAndSort = function(source_group) {
return {
all: function() {
var orderFn = function(d) {
return d;
};
blubb = source_group.order(orderFn)
.top(Infinity).filter(function(d) {
return d.value > 1;
});
return blubb;
},
};
}
barChart
.colors(d3.scale.category20())
.dimension(dimensions.name)
.group(groups.nameNoEmpty)
.elasticY(true)
.x(d3.scale.ordinal().range(groups.nameNoEmpty))
.elasticX(true)
.xUnits(dc.units.ordinal);
更新
我改变了戈登提到的问题。但我仍然得到同样的错误。这是更新的代码:
var removeEmptyBinsAndSort = function(source_group) {
var orderFn = function(d) {
return d;
};
source_group.order(orderFn);
var all = function() {
return source_group.top(Infinity)
.filter(function(d) {
return d.value > 1.0;
});
};
return {
all: all,
//returns all key values as sorted array
domain: function() {
return all().map(function(d) {
return d.key;
});
}
};
};
//The call in the bar chart is now
barChart
.x(d3.scale.ordinal().domain(groups.nameNoEmpty.domain()))
非常奇怪的是它有时会起作用,有时却不起作用。重现起来很难。