散点图的错误

时间:2017-08-02 13:39:38

标签: javascript dc.js

我从dc.js实施了下一个example并发现了有趣的错误。当颜色重复并且用户对重复颜色的某些标签执行mouseover操作时 - 图表按当前颜色显示所有数据,而不是仅显示当前标签。

图表:

chart

标签为mouseover的错误:

enter image description here enter image description here

我添加了一些fiddle这个错误。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

是的,这看起来像一个bug,在dc.js代码中挖掘确认问题。绘制图例项时,会附加一些事件回调。一个重要的是完成的行动on "mouseover" event

.on('mouseover', function (d) {
  _parent.legendHighlight(d);
})

然后,查看scatter.js代码let me confirm the bug

_chart.legendHighlight = function (d) {
    resizeSymbolsWhere(function (symbol) {
        return symbol.attr('fill') === d.color;
    }, _highlightedSize);
    _chart.chartBodyG().selectAll('.chart-body path.symbol').filter(function () {
        return d3.select(this).attr('fill') !== d.color;
    }).classed('fadeout', true);
};

我们可以看到通过检查项目的颜色是否与突出显示的图例项目的颜色相同来进行突出显示。因此,在您的情况下,当颜色重复时,您会突出显示太多的点。

所以,您可以注册一个问题in the dc.js github,因为这肯定是一个错误。

在这种情况下不可能进行简单的修复,为了正确突出好项目,我们错过了项目的识别,今天,在生成的html中,没有任何东西可以识别或链接图例和情节,需要添加一些东西链接它们(这比在现有代码中更容易编写;))。