Highcharts - 重叠的散点图标签不可读

Highcharts - Overlapping scatterplot labels are not readable

我想把用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,
        }
      }
    }

});

Highcharts 目前 doesn't have collision detection for labels, but building on an answer to a similar question,您可以在图表的 loadredraw 上实现自己的碰撞检测器(此处:staggerDataLabels())和 运行事件:

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

function staggerDataLabels(series) {
  ...

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