Horizontal Bar Chart using Chart.js v2 with right-aligned text inside the bars
by Shashi Kumar Nagulakonda
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.1.3/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, 25, 35, 45]
}]
},
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[1].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)) - 50, bar._model.y);
}), this)
}), this);
}
}
}
});