当stackLabel大于列时,如何在highcharts中隐藏它

当stackLabel大于列时,如何在highcharts中隐藏它,highcharts,Highcharts,当标签中的文本大于列时(如下图所示),如何在highCharts中隐藏stackLabel(列上方的标签)。 当我的数据超过列宽时,我想显示空字符串 这是代码的一部分,负责显示数据: yAxis: { stackLabels: { style: { color: 'black' }, enabled: true formatter: function () {

当标签中的文本大于列时(如下图所示),如何在highCharts中隐藏stackLabel(列上方的标签)。 当我的数据超过列宽时,我想显示空字符串

这是代码的一部分,负责显示数据:

yAxis: {
    stackLabels: {
        style: {
            color: 'black'
        },
        enabled: true
        formatter: function () {                    
             return this.total + " mm ";
       }
    }
}

创建一个函数,该函数循环遍历堆栈标签,并根据比较隐藏或显示标签,将其宽度与点的宽度进行比较

函数可以如下所示:

function hideLabel() {
  const axis = this.yAxis[0];
  const stacks = axis.stacks.column;
  const pointWidth = this.series[0].points[0].shapeArgs.width;

  Object.keys(stacks).forEach(key => {
    const label = stacks[key].label;

    label.attr({
      visibility: label.getBBox().width > pointWidth ? 'hidden' : 'visible'
    });
  })
}
在加载和重画事件时设置此函数:

 chart: {
    type: 'column',
    events: {
      load: hideLabel,
      redraw: hideLabel
    }
},

示例:

请添加一些代码,或一个包含所需内容的屏幕截图。我认为使用您的逻辑将更接近OP的要求