MENU
.net Powerful JavaScript charts
About
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 use for showing charts on your website.

More »

 

Download
Get the latest version of RGraph (version 6.18, 1st June 2024) 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.

More »

 

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 simple Rose chart

[No canvas support]

Here's a simple Rose chart that can be quite easily used as a traditional Wind Rose chart (ie based on a compass with larger segments indicating stronger winds).

The canvas Rose can be stacked or non-equi-angular and there's also an svg version of it. The svg version can also be configured in a stacked + non-equi-angular configuration (the canvas version can't do this). There's a demo of that in the download called svg-rose-non-equi-angular-stacked.html

Though the canvas Rose can be configured to have a 3D appearance. There's a demo of the 3D Rose online and in the download.

The svg Rose also has a segmentsAngleOffset property. This property allows you to rotate the segments slightly and by using two Rose charts - one with a positive offset and one with a negative offset you can get a grouped effect to the chart. This is shown by a demo in the download called svg-rose-grouped.html

For smaller screens, the text is smaller and there's no css float applied to the svg tag.


This goes in the documents header:
<script src="RGraph.common.core.js"></script>
<script src="RGraph.rose.js"></script>
Put this where you want the chart to show up:
<div style="float: right">
    <canvas id="cvs" width="600" height="400">[No canvas support]</canvas>
</div>
This is the code that generates the chart - it should be placed AFTER the canvas tag(s):
<script>
    // This is a simple example of the Rose chart that's been configured
    // with some labels that are positioned around the Rose chart.
    rose = new RGraph.Rose({
        id: 'cvs',
        data: [4,6,3,5,2,8,9],
        options: {
            labels: ['Luna','Kevin','Richard','John','Dave','Bob','Paul'],
            
            // Add some responsive capabilities. The chart doesn't
            // change much - it mostly just reduces in size.
            responsive: [
                {maxWidth: null,width:600,height:400,options:{textSize:12},parentCss:{'float':'right',textAlign:'none'}},
                {maxWidth: 900,width:400,height:300,options:{textSize:10},parentCss:{'float':'none',textAlign:'center'}}
            ]
        }
    
    // Draw the chart
    }).draw();
</script>