RGraph is a JavaScript charts library based on HTML5 SVG and canvas. RGraph is mature (over 15 years old) and has a wealth of features making it an ideal choice to show charts on your website.

More »


Get the latest version of RGraph (version 6.17) from the download page. There's also older versions available, minified files and links to cdnjs.com hosted libraries.

More »


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 Line chart using the CSV reader

[No canvas support]

A Line chart that's serving as a basic example of using the csv Reader in conjunction with the csv reader.

The data that's being fetched is done with this line-of-code:

var data = csv.column(2);

And what that does is fetch the whole of the third column (counting starts at zero). This column of data is then given to the chart as its data. The x-axis labels for the chart are simply hardcoded but they could quite easily be fetched from the first column of the csv like this:

var labels = csv.column(0);

The responsive function reduces the size of the canvas tag, reduces the size of the text and rotates the x-axis labels to an angle of 45 degrees. It also adds a bottom css margin and removes the css float.

This goes in the documents header:
<script src="RGraph.common.core.js"></script>
<script src="RGraph.common.csv.js"></script>
<script src="RGraph.line.js"></script>
Put this where you want the chart to show up:
<div style="float:right">
    <canvas id="cvs" width="500" height="250">[No canvas support]</canvas>
This is the code that generates the chart - it should be placed AFTER the canvas tag(s):
    // Create a new CSV connector object passing it the URL of the CSV file and a
    // function that creates the chart. Due to AJAX restrictions the URL must be
    // relative to the current website/domain.
    new RGraph.CSV('/sample.csv', function (csv)
        // Fetch the third column from the CSV file (the numbering is zero-indexed)
        var data = csv.column(2);

        // Create the Line chart and give it the data that we just got from the
        // CSV file along with some hardcoded X-axis labels.
        var line = new RGraph.Line({
            id: 'cvs',
            data: data,
            options: {
                xaxisLabels: ['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'],
                shadow: false,
                backgroundGridBorder: false,
                backgroundGridVlines: false,
                xaxis: false,
                yaxis: false,
                    {maxWidth: null, width:500,height:250, options: {xaxisLabelsAngle: 0,textSize: 12,marginLeft: 35},parentCss: {marginBottom: 0,cssFloat: 'right',textAlign:'none'}},
                    {maxWidth: 900,width: 400,height: 150,options: {xaxisLabelsAngle: 20,textSize: 10,marginLeft: 45},parentCss: {marginBottom: '35px',cssFloat: 'none',textAlign:'center'}}