Take a look at this SF question for more details, see my answer.
- Add code after chartjs code
- In chartsjs options set
options.customOffsetto 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; | |
| } | |
| } | |
| }); |