« Previous       Home page demos       Next »

A Bar chart customised to look like the millionaire bar chart

[No canvas support]

This is an example of a Bar chart that has been customised to have an appearance similar to the "Who wants to be a millionaire" "Ask the Audience" results bar chart. It uses the ondraw event in-conjunction with the API in order to draw the text above the bars. The background gradient is done with a CSS linear-gradient - it's not drawn on the canvas. The background grid is customised in linewidth and color, the axes are disabled and the text colour is customised too.

The CSS gradient that's used in the canvas tags STYLE attribute is a straight-forward linear gradient but achieves a nice effect for the background of the chart. The relevant CSS is this:

background-image: linear-gradient(45deg, black, blue, black);

It's made up of three parts - an angle for the gradient (which in this case is 45 degrees) and the colors that the gradient uses. There's a whole HOWTO document about CSS gradients here that shows you the various options that are available to you.

This goes in the documents header:
<script src="RGraph.common.core.js"></script>
<script src="RGraph.bar.js"></script>
Put this where you want the chart to show up:
<canvas id="cvs" width="300" height="250" style="border-radius: 6px; background-image: linear-gradient(45deg, black, blue, black); box-shadow: #aaa 2px 2px 2px">[No canvas support]</canvas>
    [No canvas support]
This is the code that generates the chart:
    labels = [50,20,15,15];
    data   = RGraph.arrayClone(labels);

    bar = new RGraph.Bar({
        id: 'cvs',
        data: data,
        options: {
            backgroundGridAlign: false,
            backgroundGridVlinesCount: 8,
            backgroundGridHlinesCount: 10,
            backgroundGridColor: '#6A93CA',
            backgroundGridLinewidth: 3,
            yaxisScaleMax: 100,
            marginLeft: 10,
            marginRight: 10,
            marginTop: 30,
            marginBottom: 45,
            yaxisLabels: false,
            xaxisLabels: ['A','B','C','D'],
            xaxisLabelsColor: 'yellow',
            axes: false,
            textSize: 22,
            textColor: 'rgba(0,0,0,0)',
            textFont: 'Verdana',
            colorsStroke: 'rgba(0,0,0,0)'
    }).grow().on('draw', function ()
        // Add the labels
        for (var i=0; i<4; i++) {
            RGraph.text2(bar.context, {
                text: labels[i] + '%',
                x:bar.coords[i][0] + (bar.coords[i][2] / 2),
                color: 'white',
                size: 18,
                halign: 'center',
                font: 'Verdana'