2017-04-26 64 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/