计算一组中的点 - Highcharts

时间:2017-09-05 09:06:48

标签: highcharts

首先让我解释一下我提供的小提琴。 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;
}
      }

2 个答案:

答案 0 :(得分:1)

根据我的理解,您想要计算所有chained的气泡。我创建了递归代码,收集链接在一个组中的所有气泡并将它们返回到一个数组中。看看我在下面发布的示例。

例:
https://jsfiddle.net/m53tevbq/

答案 1 :(得分:0)

正如你所说,你的脚本需要一些递归。

你距离预期的结果并不是很远。我的逻辑遵循传递关系:

simple transitivity relation

设想ABC是图表气泡。如果A重叠B重叠CA不重叠C),则重叠气泡的总量为3。

因此A不会“知道”C,但两者都重叠B

如果您对逻辑或代码有任何疑问,请随时提出。我在代码中加了一些注释来解释你我做了什么。

最后,here is your working fiddle