Data labels responsive font

https://github.com/chartjs/chartjs-plugin-datalabels/issues/27

by cubicalmonkey

HTML

<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/Chart.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]"></script>
<div class="wrapper">
  <canvas id="chart"></canvas>
</div>

JavaScript

var labels = [0,1,2,3,4,5,6,7,8,9];
var data = [0,1,2,3,2,3,0.5,8,4,2];

var chart = new Chart('chart', {
  type: 'bar',
  data: {
    labels: labels,
    datasets: [{
      backgroundColor: '#ccddee',
      borderColor: '#5566aa',
      data: data
    }]
  },
  options: {
  	legend: false,
    tooltip: false,
    layout: {
    	padding: 24
    },
    plugins: {
      datalabels: {
        anchor: 'end',
        align: 'end',
        backgroundColor: null,
        borderColor: null,
        borderRadius: 4,
        borderWidth: 1,
        color: '#223388',
        font: function(ctx) {
          var width = ctx.chart.width;
          var size = Math.round(width / 32);
        	return {
          	size: size,
            weight: 600
          };
        },
        offset: 4,
        padding: 0,
        formatter: function(value) {
        	return Math.round(value * 10) / 10
        }
      }
    }
  }
});