首先让我解释一下我提供的小提琴。 https://jsfiddle.net/abcdlearner/a4y3cge4/1
在图表的最右边,有四个泡泡在一起。因此,当我将鼠标悬停在该组中的任何气泡时,我应该将计数统计为四。因为该组包含四个气泡。然而,在小提琴中,当悬停在不同的气泡上时,它将显示不同的数量。
简而言之,例如,如果将8个气泡链接在一起,那么当它悬停在该组8中的任何气泡时,它应该将计数显示为8.我需要组计数,而不是计数气泡与悬停的气泡相交。这可以通过我想的递归来实现。但我坚持这个。任何及时的帮助都将非常感谢!
series: [{
tooltip: {
pointFormatter: function () {
var _this = this;
var overlapCount = this.series.data.reduce(function (sum, point) {
return sum + (point !== _this && areOverlapping(_this, point));
}, 0) + 1;
return 'Overlapping bubbles: ' + overlapCount;
}
}
答案 0 :(得分:1)
根据我的理解,您想要计算所有chained
的气泡。我创建了递归代码,收集链接在一个组中的所有气泡并将它们返回到一个数组中。看看我在下面发布的示例。
答案 1 :(得分:0)
正如你所说,你的脚本需要一些递归。
你距离预期的结果并不是很远。我的逻辑遵循传递关系:
设想A
,B
和C
是图表气泡。如果A
重叠B
重叠C
(A
不重叠C
),则重叠气泡的总量为3。
因此A
不会“知道”C
,但两者都重叠B
。
如果您对逻辑或代码有任何疑问,请随时提出。我在代码中加了一些注释来解释你我做了什么。