首页 > 解决方案 > 未显示系列最后一点的 Highcharts 数据标签

问题描述

我想在折线图中系列的最后一点显示数据标签并添加以下代码:

 dataLabels: {
    enabled: true,
    formatter: function() {
      if (this.x == this.series.data[this.series.data.length - 1].x) {
        return 'Test';
      } else {
        return null;
      }
    }
  },

不幸的是,没有显示数据标签。见小提琴

标签: highcharts

解决方案


您的系列包含 63 个点,但其中只有 23 个已定义y属性并显示。您需要过滤可见点并获取它们中的最后一个,例如:

  dataLabels: {
    enabled: true,
    formatter: function() {
      var visiblePoints = this.series.points.filter(p => typeof p.y === 'number');

      if (this.x == visiblePoints[visiblePoints.length - 1].x) {
        return 'Test';
      } else {
        return null;
      }
    }
  }

现场演示: https ://jsfiddle.net/BlackLabel/e50jspxu/


推荐阅读