2017-09-05 45 views
1

讓我從解釋我提供的小提琴開始。 https://jsfiddle.net/abcdlearner/a4y3cge4/1計算組中的積分 - Highcharts

在圖表的最右邊,有四個泡在一起。所以當我將鼠標懸停在該組中的任何一個泡泡上時,我應該始終記住四位數。因爲該組包含四個泡泡。而在小提琴中,當懸停在不同的氣泡上時,它會顯示不同的計數。簡而言之,例如,如果有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; 
} 
     } 

回答

1

從我的理解中,你想要統計所有的chained氣泡。我創建了遞歸代碼,收集所有在一個組中鏈接的氣泡並將它們返回到一個數組中。看看我在下面發佈的例子。

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

0

正如你所說,你的腳本需要一些遞歸。

你離期望的結果並不很遠。我的邏輯如下傳遞關係:

simple transitivity relation

所以,想象ABC是圖氣泡。如果A重疊B重疊CA不重疊C),重疊泡的總金額爲3

所以A並不「知道」 C,但兩者是重疊的B

如果您對邏輯或代碼有任何疑問,請隨時詢問。我在代碼中添加了一些註釋,以解釋我所做的事情。

最後,here is your working fiddle

+0

嘿感謝了很多的努力。請參閱更新的小提琴:https://jsfiddle.net/a4y3cge4/5/ – Martin

+0

哦,對,問題是我的示例只接受具有較高數量重疊兄弟的元素,並將其設置爲同一組的其他泡泡。 –