MENU
.net Powerful JavaScript charts
About
RGraph is a JavaScript charts library based on HTML5 SVG and canvas. RGraph is mature (over 18 years old) and has a wealth of features making it an ideal choice to use for showing charts on your website.

More »

 

Version 7.20
Version 7.20 (released in June 2026) is the latest version of RGraph and the major change in this version is an update to the default values of properties making for better looking charts without having to set any properties. Read more about this and other changes in the changelog.

Download »

 

Download
Get the latest version of RGraph (version 7.20, 9th June 2026) from the download page. You can read the changelog here. There's also older versions available, minified files and links to cdnjs.com hosted libraries.

Download »

 

Latest forum posts
These are the latest support forum posts that have been posted or updated.

9th June, Richard
New version of RGraph: version 7.20
3rd June, Patrick
Question about installing RGraph
1st June, Ouja
How do I add a click event to a bar in my Bar chart?
8th May, Anthony Kuma
Does the SVG Line chart have outofbounds functionality?


Support forum »

 

License
RGraph can be used for free under the GPL or if that doesn't suit your situation there's an inexpensive (£129) commercial license available.

More »

A "Who wants to be a millionaire?" style 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 draw event in conjunction with the api 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 colors, the axes are disabled and the text color is customised too.

The css gradient that's used in the canvas tag's style attribute is a straightforward 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.

There's also an svg version of this chart in the download archive.

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; float: right">[No canvas support]</canvas>
This is the code that generates the chart - it should be placed AFTER the canvas tag(s):
<script>    
    // These are the labels that are placed above the Bar chart
    labels = [50,20,15,15];
    
    // Copy the labels and create the data out of them
    data   = RGraph.arrayClone(labels);

    // Create the Bar chart
    bar = new RGraph.Bar({
        id: 'cvs',
        data: data,
        options: {
            
            // Note that the background of the canvas tag is a CSS gradient
            // as well as these configuration properties.
            backgroundGridVlines: true,
            backgroundGridHlinesCount: 10,
            backgroundGridColor: '#6A93CA',
            backgroundGridLinewidth: 3,
            
            // A pink gradient for the bar colors
            colors:['Gradient(#EC06D8:#FEB2FB:#FEB2FB)'],

            yaxisScaleMax: 100,
            marginLeft: 10,
            marginRight: 10,
            marginTop: 30,
            marginBottom: 30,
            yaxisScale: false,
            xaxisLabels: ['A','B','C','D'],
            xaxisLabelsColor: 'yellow',
            textSize: 20,
            textColor: 'transparent',
            textFont: 'Verdana',

            // Add a draw event listener
            events: {
                draw: function (obj)
                {
                    // Add the labels that are positioned in the top margin. The
                    // labelsAbove option places the text just above each bar and
                    // we want all the labels in the top margin. Therefore a little
                    // custom text is required.
                    for (var i=0; i<4; i++) {
                        RGraph.text({
                            object: obj,
                            text:   labels[i] + '%',
                            x:      obj.coords[i][0] + (obj.coords[i][2] / 2),
                            y:      60,
                            color:  'white',
                            size:   36,
                            halign: 'center',
                            font:   'Verdana'
                        });
                    }
                }
            }
        }
    }).grow();
</script>