Highcharts Cycling Series

BC 3rd attempt

by Ben Clayton

HTML

<script src="https://code.highcharts.com/highcharts.js"></script>
<script src="https://code.highcharts.com/modules/series-label.js"></script>
<script src="https://code.highcharts.com/modules/exporting.js"></script>
<script src="https://code.highcharts.com/modules/export-data.js"></script>

<div id="container"></div>

CSS

#container {
  min-width: 310px;
  max-width: 800px;
  height: 400px;
  margin: 0 auto
}

JavaScript

function init_graph() {
  var hc_options = {
    chart: {
      ignoreHiddenSeries: true,
      type: "column",
      animation: {
        duration: 1000
      },
      events: {
        load: function() {
					cycle = (typeof cycle != 'undefined')?cycle = ( cycle + 1) % this.series.length : 0;
          for (var s = 0; s < this.series.length; s++) {
            this.series[s].hide();
          }
          this.series[cycle].show();
					
					setTimeout(function(){
						var target = this.renderTo;
						var new_options=Highcharts.merge({},this.options);
						this.destroy();
						new Highcharts.Chart(target,new_options);
					}.bind(this),5000)
        }
      }
    },

    title: {
      text: 'Solar Employment Growth by Sector, 2010-2017'
    },

    subtitle: {
      text: 'Source: thesolarfoundation.com'
    },

    yAxis: {
      title: {
        text: 'Number of Employees'
      }
    },

    plotOptions: {
      series: {
        label: {
          connectorAllowed: false
        },
        pointStart: 2010
      }
    },

    series: [{
      name: 'Installation',
      data: [43934, 52503, 57177, 69658, 97031, 119931, 137133, 154175]
    }, {
      name: 'Manufacturing',
      data: [24916, 24064, 29742, 29851, 32490, 30282, 38121, 40434]
    }, {
      name: 'Sales & Distribution',
      data: [11744, 17722, 16005, 19771, 20185, 24377, 32147, 39387]
    }, {
      name: 'Project Development',
      data: [5000, 6666, 7988, 12169, 15112, 22452, 34400, 34227]
    }, {
      name: 'Other',
      data: [12908, 5948, 8105, 11248, 8989, 11816, 18274, 18111]
    }],

    responsive: {
      rules: [{
        condition: {
          maxWidth: 500
        },
        chartOptions: {
          legend: {
            layout: 'horizontal',
            align: 'center',
            verticalAlign: 'bottom'
          }
        }
      }]
    }

  };

 new Highcharts.Chart("container",hc_options);
};

init_graph();