Highcharts Demo

author(s): Torstein Hønsi

by anikettiwari

HTML

<script src="http://code.highcharts.com/highcharts.src.js"></script>

<div id="container" style="height: 400px"></div>

JavaScript

$(function() {
    var data = [[144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4, 29.9, 71.5, 106.4, 129.2], [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]];
    var trend = [];
    for (var i = 0; i < data[0].length; i++) {
        trend.push(data[0][i] + data[1][i]);
    }

    function updateTrendLine(chart) {
        var newTrend = [];
        for (var i = 0; i < trend.length; i++) {
            newTrend.push(0);
        } /* default values == 0 */
        $(chart.series).each(function(i, e) {
            if (e.type === 'column' && e.visible) { /* only visible columns */
                $(e.data).each(function(ii, ee) {
                    newTrend[ii] = newTrend[ii] + ee.y; /* update trend */
                });
            }
        });
        chart.get('trend').setData(newTrend); /* set new data for line trend */
    }

    var chart = new Highcharts.Chart({
        chart: {
            renderTo: 'container',
            type: 'column'
        },
        xAxis: {
            categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
        },

        plotOptions: {
            series: {
                stacking: 'normal',
                events: {
                    hide: function() {
                        updateTrendLine(this.chart);
                    },
                    show: function() {
                        updateTrendLine(this.chart);
                    }
                }
            }
        },
        tooltip: {
            shared: true
        },           
        series: [{
            name: "Mango sale",
            data: data[0],
    },
        {
            name: "Banana sale",
            data: data[1]},
        {
            name: "Sales trend",
            data: trend,
            id: 'trend',
            type: 'spline'}]
    });
});