Highcharts Stock Demo

author(s): Torstein Hønsi

by Fusher

HTML

<div id="container" style="height: 400px; min-width: 600px"></div>

<script src="http://code.highcharts.com/stock/highstock.src.js"></script>
<script src="http://code.highcharts.com/stock/modules/exporting.js"></script>
<script type="text/javascript" src="http://www.highcharts.com/samples/data/usdeur.js"></script>

JavaScript

$(function() {
    function max(arr) {
        var max = arr[0];
        var len = arr.length;
        for (var i = 1; i < len; i++) if (arr[i] > max) max = arr[i];
        return max;
    }

    function positionAreas(chart) {
        console.log(chart);
        var maxS1 = max(chart.series[0].yData), 
            maxS2 = max(chart.series[1].yData),
            yAx = chart.yAxis[0];
        console.log(yAx.translate(maxS1),yAx.translate(maxS2));
        if(yAx.translate(maxS1) > yAx.translate(maxS2)) {
            chart.series[1].group.toFront();
        } else {
            chart.series[0].group.toFront();
        }
    }

    function newRandomData(n, m) {
        // generate an array of random data
        var data = [],
            time = (new Date()).getTime(),
            i;

        for (i = -1 * n; i <= 0; i++) {
            data.push(Math.random() * m);
        }
        return data;
    }
    var chart = new Highcharts.StockChart({

        chart: {
            renderTo: 'container',
            type: 'areaspline',
            events: {
                load: function() {
                    positionAreas(this);
                }
            }
        },

        rangeSelector: {
            enabled: false
        },

        series: [{
            name: 'USD to EUR',
            data: newRandomData(999, 12)},
        {
            name: 'USD to EUR',
            data: newRandomData(999, 110)}]
    });
});