Highcharts Stock Demo

author(s): Torstein Hønsi

HTML

<div id="container" style="height: 400px; min-width: 600px"></div>
<div class="info">All the text labels should have a serif type.</div>
<script src="http://code.highcharts.com/stock/highstock.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>

CSS

.info {
    font: 0.7em sans-serif;
    padding: 0.5em;
    margin: 0.5em;
    background: #FCFFC5;
    border-radius: 0.5em;
    border: 1px solid gray;
}
.info:before {
    content:'i';
    margin: 0.5em;
    font: 1.5em serif bold;
    font-style: italic;
    color: green;
}

JavaScript

$(function () {
    (function (HC) {
        function TrickForcolouringColumns(dict, tmpChart) {
            var originalDrawPoints = HC.seriesTypes.column.prototype.drawPoints;
            var tmpDict = dict;
            var chart = tmpChart;

            HC.seriesTypes.column.prototype.drawPoints = function () {
                console.log(this);
                var merge = Highcharts.merge;
                var series = this;

                if (series != null) {
                    var points = series.points;
                    var i = points.length;
                    while (i--) {
                        var candlePoint = points[i];
                        var attr = candlePoint.pointAttr;

                        var color = '#33CCFF'; //light blue
                        var curKey = BuildKey(candlePoint.x);
                        if (tmpDict[curKey] != null) {
                            color = '#3366FF'; //dark blue
                        }

                        var seriesPointAttr = merge(attr);
                        //seriesPointAttr[''].fill = color;
                        //seriesPointAttr.hover.fill = Highcharts.Color(color).brighten(0.3).get();
                        //seriesPointAttr.select.fill = color;
                        points[i].pointAttr = seriesPointAttr;
                    }
                    originalDrawPoints.call(this);
                }
            };
        }
        
        function BuildKey(x){
             //what to do?
            var y = Math.round(Math.random());
            return y;
        }
        
        TrickForcolouringColumns([true, null]);

    })(Highcharts);


    Highcharts.setOptions({
        chart: {
            style: {
                fontFamily: 'serif'
            }
        }
    });

    $('#container').highcharts('StockChart', {

        chart: {},

        rangeSelector: {
            selected: 1
        },

        series: [{
            name: 'USD to EUR',
            type:...