A Segmented Donut chart
The Segmented donut chart
was formerly a variation of the Pie chart
, however now it has been promoted
to a standalone chart type. It represents a single value as a proportion of the whole - a circular
progress bar effectively.
The chart is quite small and fits well on smaller devices so it doesn't need a lot of changing
with the responsive
function. Only the width
and labelSize
properties are adjusted and the css
float
value is changed.
An event listener is added to the canvas
(using the standard addEventListener
function) so that when you click on the chart the value of where you click is retrieved (using the
objects getValue
function, set on the chart object and then the chart animates to the
new value.
<script src="RGraph.common.core.js"></script> <script src="RGraph.segmented.js"></script>Put this where you want the chart to show up:
<div> <canvas id="cvs" width="350" height="350">[No canvas support]</canvas> </div>This is the code that generates the chart - it should be placed AFTER the
canvas
tag(s):
<script> segmented = new RGraph.Segmented({ id: 'cvs', max: 100, value: 70, options: { labelsCenterUnitsPost: '%', labelsCenterColor: '#aaa', responsive: [ {maxWidth: null,width: 350,height: 350,options:{width: 55,labelsCenterSize: 60},parentCss:{'float':'right', textAlign:'none'}}, {maxWidth: 700,width: 250,height: 250,options:{width: 40,labelsCenterSize: 45},parentCss:{'float':'none', textAlign:'center'}} ] } }).roundRobin({frames: 60}); // // If the chart is clicked then adjust the value // segmented.canvas.addEventListener('click', function (e) { var value = segmented.getValue(e); if (value) { segmented.value = value; segmented.grow(); } }, false); </script>