2017-04-26 138 views
1

我想清楚地顯示用highcharts製作的散點圖的所有數據標籤。Highcharts - 重疊的散點圖標籤不可讀

我有一個散點圖,有點可能重疊或非常接近的點。默認情況下,高圖隱藏任何重疊標籤,但我需要所有標籤都可見。 我試着設置'allowOverlap:true'。這使得所有標籤都顯示爲我想要的,但標籤並不總是可讀的。 是否有更清晰的方式確保所有標籤在散點圖上都可見,或者是否有人能夠檢測到並重疊標籤?

的jsfiddle其中顯示僅三四個標籤: https://jsfiddle.net/jholwell/vbc58Luh/

Highcharts.chart('container', { 
    series: [{ 
     data: [[1, 1], [1.8, 1.8], [1.9, 1.8], [5, 2]], 
     type: 'scatter' 
    }], 
    plotOptions: { 
     scatter: { 
     dataLabels: { 
      enabled: true, 
     } 
     } 
    } 

}); 

回答

3

Highcharts目前doesn't have collision detection for labels,但an answer to a similar question建築,你可以實現自己的碰撞檢測器(這裏:staggerDataLabels()),並在圖表的運行loadredraw事件:

Highcharts.chart('container', { 
    chart: { 
    events: { 
     load: function() { 
     staggerDataLabels(this.series); 
     }, 
     redraw: function() { 
     staggerDataLabels(this.series); 
     } 
    }, 
    }, 
    ... 
}); 

function staggerDataLabels(series) { 
    ... 

https://jsfiddle.net/vbc58Luh/2/