Take a look at this SF question for more details, see my answer.
- Add code after chartjs code
- In chartsjs options set
options.customOffset
to any number you want to offset the chart
Take a look at this SF question for more details, see my answer.
options.customOffset
to any number you want to offset the chart// based on my answer here: https://stackoverflow.com/questions/47146427 | |
Chart.pluginService.register({ | |
beforeUpdate: function(chart){ | |
// get custom defined offset | |
var offset = chart.options.customOffset; | |
// exisit gracefully if offset not defined or less than 0 | |
if(!offset || offset < 0) return; | |
var yAxes = chart.options.scales.yAxes; | |
for(var i=0; i<yAxes.length; i++){ | |
var axis = yAxes[i]; | |
var datasets = chart.data.datasets; | |
var max = Number.MIN_VALUE; | |
var min = Number.MAX_VALUE; | |
var datasetsOnAxis = []; | |
for(var j=0; j<datasets.length; j++){ // add datasets for this axes to datasetsOnAxis | |
var dataset = datasets[j]; | |
var meta = chart.getDatasetMeta(j); | |
if (meta.yAxisID === axis.id) datasetsOnAxis.push(dataset); | |
} | |
for(var k=0; k<datasetsOnAxis.length; k++){ | |
var dataset = datasetsOnAxis[k] | |
var newMax = Math.max.apply(null, dataset.data); | |
var newMin = Math.min.apply(null, dataset.data); | |
max = newMax > max ? newMax : max; | |
min = newMin > min ? min : newMin; | |
} | |
axis.ticks.max = max + offset; | |
axis.ticks.min = min - offset; | |
} | |
} | |
}); |