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);
}
}
}
});