Highcharts Demo

author(s): Torstein Hønsi

by Dogbert

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/PapaParse/4.1.2/papaparse.min.js"></script>
<script src="https://code.highcharts.com/highcharts.js"></script>
<script src="https://code.highcharts.com/modules/data.js"></script>
<script src="https://code.highcharts.com/modules/drilldown.js"></script>

<div id="container" style="min-width: 310px; height: 400px; margin: 0 auto"></div>

JavaScript

var csv = "COG,January,February,March,April,YTD\n2016,2.28,-0.95,5.29,4.33,10.95\n2015,4.7,0.32,2.63,1.79,9.44\n2014,-1.41,-1.68,4.09,4.13,5.13\n2013,5.06,0.22,4.96,2.77,13.01\n2012,7.88,6.25,-0.75,6.65,20.03\n2011,0.4,7.82,-0.71,-0.48,7.03\n2010,3.85,4.72,-1.98,6.42,13.01";

var data = Papa.parse(csv).data;

console.log(data);

var years = [];
var years = data.slice(1).map(d => ({
  name: d[0],
  drilldown: d[0],
  y: +d[d.length - 1]
}));

var drilldown = data.slice(1).map(d => ({
	name: d[0],
  id: d[0],
  data: d.slice(1, d.length - 2).map((datum, i) => (
  	[data[0][i + 1], +datum]
  ))
}));

$(function () {
    // Create the chart
    $('#container').highcharts({
        chart: {
            type: 'column'
        },
        title: {
            text: 'Browser market shares. January, 2015 to May, 2015'
        },
        subtitle: {
            text: 'Click the columns to view versions. Source: <a href="http://netmarketshare.com">netmarketshare.com</a>.'
        },
        xAxis: {
            type: 'category'
        },
        yAxis: {
            title: {
                text: 'Total percent market share'
            }

        },
        legend: {
            enabled: false
        },
        plotOptions: {
            series: {
                borderWidth: 0,
                dataLabels: {
                    enabled: true,
                    format: '{point.y:.1f}%'
                }
            }
        },

        tooltip: {
            headerFormat: '<span style="font-size:11px">{series.name}</span><br>',
            pointFormat: '<span style="color:{point.color}">{point.name}</span>: <b>{point.y:.2f}%</b> of total<br/>'
        },

        series: [{
            name: 'Brands',
            colorByPoint: true,
            data: years
        }],
        drilldown: {
            series: drilldown
        }
    });
});