[Chartjs]-Multiple Range Highlighting of Background in Chart.js

7👍

Why not using simply the annotation plugin?

Here is your example with annotation plugin, using Box annotations:

var ctx = document.getElementById("myChart");

var myChart = new Chart(ctx, {
  type: 'line',
  data: {
    labels: ["Red", "Blue", "Yellow", "Green", "Purple", "Orange"],
    datasets: [
    	{
        label: 'Season 1',
        data: [12, 17, 3, 5, 9, 3],
        fill: false,
        borderColor: 'rgba(0, 200, 0, 1)'
    	},
      {
        label: 'Season 2',
        data: [5, 14, 3, 15, 9, 13],
        fill: false,
        borderColor: 'rgba(200, 0, 0, 1)'
    	}
    ]
  },
  options: {
    scales: {
      yAxes: [{
      	id: 'y-axis-1',
        ticks: {
          beginAtZero:true
        }
      }]
    },
    annotation: {
      drawTime: "afterDraw",
      annotations: [{
      	id: 'box1',
        type: 'box',
        yScaleID: 'y-axis-1',
        yMin: 0,
        yMax: 6,
        backgroundColor: 'rgba(100, 100, 100, 0.2)',
        borderColor: 'rgba(100, 100, 100, 0.2)',
      },{
      	id: 'box2',
        type: 'box',
        yScaleID: 'y-axis-1',
        yMin: 6,
        yMax: 12,
        backgroundColor: 'rgba(200, 100, 200, 0.2)',
        borderColor: 'rgba(200, 100, 200, 0.2)',
      },{
      	id: 'box3',
        type: 'box',
        yScaleID: 'y-axis-1',
        yMin: 12,
        yMax: 18,
        backgroundColor: 'rgba(0, 100, 200, 0.2)',
        borderColor: 'rgba(0, 100, 200, 0.2)',
      }]
    }
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.2/Chart.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/chartjs-plugin-annotation/0.5.7/chartjs-plugin-annotation.min.js"></script>

<canvas id="myChart" width="400" height="400"></canvas>

And this is your fiddle updated: https://jsfiddle.net/beaver71/50L21shp/

Leave a comment