Horizontal Bar Chart using Chart.js v2 with text inside the bars

by Shashi Kumar Nagulakonda

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.2.1/Chart.bundle.js"></script>
<canvas id="myChart" width="400" height="400"></canvas>

JavaScript

var ctx = document.getElementById("myChart");
var myChart = new Chart(ctx, {
  type: 'horizontalBar',
  data: {
    labels: ["Red", "Blue", "Green", "Yellow"],
    datasets: [{
      label: '# of Votes',
      data: [15, 45, 25, 35]
    }]
  },
  options: {
    scales: {
      xAxes: [{
        ticks: {
          beginAtZero: true
        }
      }]
    },
    animation: {
      onComplete: function() {
        var chartInstance = this.chart;
        var ctx = chartInstance.ctx;
        console.log(chartInstance);
				
        var right = chartInstance.controller.boxes[3].right;
        ctx.textAlign = "center";
				
        Chart.helpers.each(this.data.datasets.forEach(function(dataset, i) {
          var meta = chartInstance.controller.getDatasetMeta(i);
          Chart.helpers.each(meta.data.forEach(function(bar, index) {
            ctx.fillText(dataset.data[index],right - ((right - bar._model.x)/2) - 10, bar._model.y);
          }), this)
        }), this);
      }
    }
  }
});