我已经完成了从dc.js
图表中移除空箱的所有SO问题,但除了假组方法之外找不到任何其他内容
filter_group = function(oldGroup) {
return {
all: oldGroup.all().filter(...)
};
}
newGroup = filter_group(oldGroup);
然后在newGroup
图表中使用dc.js
。
这对我来说是在第一次绘制时创建正确的一组箱子,但是当我将过滤器应用到其他维度时它不会重新过滤。所以我最终得到了正确的初始箱,但在随后的重绘中,我仍然最终得到了空箱。
我想要实现的是正确的重新过滤和重绘,即根据我的过滤功能去除垃圾箱并重新绘制,不包括已过滤的垃圾箱,因此具有不同数量的垃圾箱。
这是一个显示我的意思的fiddle。
我已设置数据,以便第一个图表中a
的过滤应删除第二个中的g
栏(并在第二个g
上过滤应删除a
第一张图中的一个)
但它不会从轴上移除空条,它只显示没有条形的标签。
PS:我已经标记了reductio
和d3.js
,以防有使用这些软件包的优雅解决方案,即使我将其保留在dc.js
内。
答案 0 :(得分:0)
X比例的域确定显示哪些条。
您正在手动设置图表上的域名:
.x(d3.scale.ordinal().domain(filter_group(group).all().map(function(d) {return(d.key);}).unshift("")))
我确定你正在解决其他一些问题,但如果删除它,并指定
.elasticX(true)
相反,那么你不需要on("filtered",...
,而且当它们的值为零时,图表将删除垃圾箱。