Highcharts Demo

author(s): Torstein Hønsi

by michananya

HTML

<script src="https://code.highcharts.com/highcharts.js"></script>
<script src="https://code.highcharts.com/modules/boost.js"></script>
<script src="https://code.highcharts.com/modules/exporting.js"></script>

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

CSS

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

JavaScript

function getData(n) {
    var arr = [],
        i,
        a,
        b,
        c,
        spike;
    for (i = 0; i < n; i = i + 1) {
        if (i % 100 === 0) {
            a = 2 * Math.random();
        }
        if (i % 1000 === 0) {
            b = 2 * Math.random();
        }
        if (i % 10000 === 0) {
            c = 2 * Math.random();
        }
        if (i % 50000 === 0) {
            spike = 0;
        } else {
            spike = 0;
        }
        arr.push([
            i,
            2 * Math.sin(i / 100) + a + b + c + spike + Math.random()
        ]);
    }
    return arr;
}

function getSeries(n, s) {
    var i = 0,
        r = [];

    for (; i < s; i++) {
        r.push({
            data: getData(n),
            lineWidth: 2,
            boostThreshold: 1,
            turboThreshold: 1
        });
    }

    return r;
}

var n = 50,
    s = 20,
    series = getSeries(n, s);


console.time('line');
Highcharts.chart('container', {

    chart: {
        zoomType: 'x'
    },

    title: {
        text: 'Highcharts drawing ' + (n * s) + ' points across ' + s + ' series'
    },

    legend: {
        enabled: true
    },

    boost: {
        useGPUTranslations: true
    },

    xAxis: {
        min: 0,
        max: 120,
        ordinal: false
    },

    navigator: {
        xAxis: {
            ordinal: false,
            min: 0,
            max: 10
        }
    },

    // yAxis: {
    //     min: 0,
    //     max: 8
    // },

    subtitle: {
        text: 'Using the Boost module'
    },

    tooltip: {
        valueDecimals: 2
    },

    series: series

});
console.timeEnd('line');