2
A
回答
5
传奇在他们的图表重画时会渲染,但问题在于图例是从数据中绘制的,而crossfilter不会自动消除空的组。
如果传说是图表类型,那将是非常好的,所以我们可以使用一个假组(a.k.a.“数据转换”)。不过没有关系,我们需要更新.legendables()
过滤掉空箱:
dc.override(pieactChart, 'legendables', function() {
var legendables = this._legendables();
return legendables.filter(function(l) {
return l.data > 0;
});
});
叉的小提琴:http://jsfiddle.net/gordonwoodhull/13t804u6/5/
注:这只是修改一个(左)的图表,你必须复制/将其粘贴到每个图表(或将其包裹在一个函数中)以将其应用于其他图表。
[我非常固执,不想在图表内部使用这些数据过滤的东西,所以我不打算把它作为一个功能。相反,图例应该是一个图表,它从另一个图表中获取数据,并且应该有一种方法来转换该数据。]
+0
这很完美。 – NorthSide 2015-04-02 15:17:00
看起来传说应该在呈现时拾取加盖的切片,但它不会没有任何更新/重画逻辑,所以它不会响应过滤器。过滤器更改时,您可以尝试手动调用legend.render? – Gordon 2015-03-31 14:53:30
抱歉戈登我该怎么办?你有没有我能看到的例子,这会让我指向正确的方向?非常感谢。 – NorthSide 2015-04-01 09:53:02
好吧,看起来我在这里是错的,当图表重绘时,传奇确实会重新渲染。删除我以前的答案并写一个新的答案。 – Gordon 2015-04-02 14:39:01