Highcharts Demo

author(s): Torstein Hønsi

by anikettiwari

HTML

<scirpt src="https://cdnjs.cloudflare.com/ajax/libs/highcharts/7.0.1/highcharts.js"></scirpt>

<div id="container"></div>

JavaScript

arr = [599, 756, 515, 346, 398, 518, 339, 319, 402, 290]

Highcharts.chart('container', {
  chart: {
    type: 'bar',
    marginRight: 100,
  //  spacingLeft: 16,
   //  spacingRight: 30,
    events: {
      render() {
        let chart = this;

        chart.series[0].points.forEach(p => {
          if (p.overallLabel) {
            p.overallLabel.destroy();
          }
           
          let x = chart.plotWidth + chart.plotLeft + 10, // where 10 is a padding,
            y = p.dataLabel.absoluteBox.y - p.dataLabel.bBox.y,
            opacity = chart.series[2].visible;
					console.log(p.dataLabel.absoluteBox)
          p.overallLabel = chart.renderer.label(arr[p.index], x, y)
            .attr({
              fill: 'orange',
              padding: 3,
              r: 10,
              opacity: opacity ? 1 : 0
            }).add()
        })
      }
    }
  },
  xAxis: {
    categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
  },
  yAxis: {
    stackLabels: {
      style: {
        textShadow: false
      },
      enabled: true,
      formatter: function() {

        return this.total + '<div style="float: right !important; " >   ' + arr[this.x] + '</div>';

      }
    },
  },

  plotOptions: {
    series: {
      stickyTracking: false,
      followPointer: false,
      cursor: 'pointer',
      pointWidth: 20,
      dataLabels: {
        enabled: true,
        inside: true,
        style: {
          verticalAlign: 'middle'
        }
      },
      stacking: true
    },

  },

  series: [{
    data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1]
  }, {
    data: [144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4, 29.9, 71.5]
  }, {
    name: 'Overall',
    color: 'orange',
  }]
});