<!DOCTYPE html >
<html>
<head>
<link rel="stylesheet" href="demos.css" type="text/css" media="screen" />
<script src="../libraries/RGraph.common.core.js" ></script>
<script src="../libraries/RGraph.common.dynamic.js" ></script>
<script src="../libraries/RGraph.common.effects.js" ></script>
<script src="../libraries/RGraph.gauge.js" ></script>
<title>A customised and adjustable Gauge chart</title>
<meta name="robots" content="noindex,nofollow" />
<meta name="description" content="A Gauge chart that is updated periodically by AJAX" />
</head>
<body>
<div style="background-color: #ffc; border: 2px solid #cc0; border-radius: 5px; padding: 5px;">
<b>Note:</b>
For security reasons the AJAX demos don't work offline. You can view the demos on the RGraph website here:
<a href="http://www.rgraph.net/demos/" target="_blank" rel="nofollow">http://www.rgraph.net/demos</a>
</div>
<h1>A customised Gauge chart (with AJAX updating)</h1>
<p>
This Gauge is much like the previous one but with AJAX updating instead of click updating. Because
of the AJAX it only works when viewed online - which you can do <a href="http://www.rgraph.net/demos/gauge-ajax.html" rel="nofollow">here</a>.
</p>
<canvas id="cvs" width="250" height="250">[No canvas support]</canvas>
<script>
window.onload = function ()
{
var gauge = new RGraph.Gauge({
id: 'cvs',
min:0,
max: 100,
value: 7,
options: {
borderOutline: 'transparent',
needleColors: ['red'],
needleType: 'line',
centerpinRadius: 0.1,
titleTop: 'Speed',
textAccessible: true
}
}).on('draw', function (obj)
{
var co = obj.context;
// This circle becomes the border of the centerpin
RGraph.path2(co, ['b', 'a', obj.centerx, obj.centery, 10, 0, RGraph.TWOPI, false, 'f', 'black']);
})
.draw();
var delay = 1500;
function myAJAXCallback(num)
{
gauge.value = num;
gauge.grow()
// Make another AJAX call after the delay (which is in milliseconds)
setTimeout(function ()
{
RGraph.AJAX.getNumber('/getdata.html', myAJAXCallback);
},
delay);
}
/**
* Make the AJAX call every so often (contolled by the delay variable)
*/
setTimeout(function () {RGraph.AJAX.getNumber('/getdata.html', myAJAXCallback);}, delay);
};
</script>
<p></p>
This goes in the documents header:
<pre class="code">
<script src="RGraph.common.core.js"></script>
<script src="RGraph.common.dynamic.js"></script>
<script src="RGraph.common.effects.js"></script>
<script src="RGraph.gauge.js"></script>
</pre>
Put this where you want the chart to show up:
<pre class="code">
<canvas id="cvs" width="250" height="250">
[No canvas support]
</canvas>
</pre>
This is the code that generates the chart:
<pre class="code">
<script>
window.onload = function ()
{
var gauge = new RGraph.Gauge({
id: 'cvs',
min:0,
max: 100,
value: 7,
options: {
borderOutline: 'transparent',
needleColors: ['red'],
needleType: 'line',
centerpinRadius: 0.1,
titleTop: 'Speed',
labelsOffset: 7,
textAccessible: true
}
}).on('draw', function (obj)
{
var co = obj.context;
<span>// This circle becomes the border of the centerpin</span>
RGraph.path2(co, ['b', 'a', obj.centerx, obj.centery, 10, 0, RGraph.TWOPI, false, 'f', 'black']);
})
.draw();
var delay = 1500;
function myAJAXCallback(num)
{
gauge.value = num;
gauge.grow()
<span>// Make another AJAX call after the delay (which is in milliseconds)</span>
setTimeout(function ()
{
RGraph.AJAX.getNumber('/getdata.html', myAJAXCallback);
}, delay);
}
<span>/**
* Make the AJAX call every so often (contolled by the delay variable)
*/</span>
setTimeout(function ()
{
RGraph.AJAX.getNumber('/getdata.html', myAJAXCallback);
}, delay);
};
</script>
</pre>
<p>
<a href="https://www.facebook.com/sharer/sharer.php?u=http://www.rgraph.net" target="_blank" onclick="window.open('https://www.facebook.com/sharer/sharer.php?u=http://www.rgraph.net', null, 'top=50,left=50,width=600,height=368'); return false"><img src="../images/facebook-large.png" width="200" height="43" alt="Share on Facebook" border="0" title="Visit the RGraph Facebook page" /></a>
<a href="https://twitter.com/_rgraph" target="_blank" onclick="window.open('https://twitter.com/_rgraph', null, 'top=50,left=50,width=700,height=400'); return false"><img src="../images/twitter-large.png" width="200" height="43" alt="Share on Twitter" border="0" title="Mention RGraph on Twitter" /></a>
</p>
<p>
<a href="./">« Back</a>
</p>
</body>
</html>