<!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.line.js" ></script>
<title>A dynamically updating filled range chart with a threshold</title>
<meta name="robots" content="noindex,nofollow" />
<meta name="description" content="A dynamically updating filled range chart. The data here is simply generated randomly but could just as easily be retrieved from a server via AJAX (for example)." />
</head>
<body>
<h1>A dynamically updating filled range chart with a threshold</h1>
<p>
This chart is very similar to the regular scrolling line chart but is a filled range chart with a threshold set.
</p>
<canvas id="cvs" width="1000" height="250">[No canvas support]</canvas>
<script>textAccessible: true
window.onload = function ()
{
var obj = null;
var numvalues = 600;
var value = 25;
// RGraph.array_pad(array, length[, value])
var data1 = RGraph.arrayPad([], numvalues, null);
var data2 = RGraph.arrayPad([], numvalues, null);
function drawGraph ()
{
// "cache" this in a local variable
var RG = RGraph;
var ma = Math;
var canvas = document.getElementById("cvs");
RG.clear(canvas);
if (!obj) {
obj = new RGraph.Line({
id: 'cvs',
data: [data1, data2],
options: {
xticks: 100,
backgroundGridAutofitNumvlines: 15,
title: 'Bandwidth used (Mb/s)',
titleXaxis: 'Bandwidth used',
titleXaxisPos: 0.5,
colors: ['black'],
linewidth: 0.5,
yaxispos: 'right',
ymax: 50,
noxaxis: true,
numyticks: 0,
filled: true,
filledRange: true,
filledRangeThreshold: 25,
filledRangeThresholdColors: ['red','#0c0'],
fillstyle: 'red',
colors: ['rgba(0,0,0,0)'],
tickmarks: null,
textAccessible: true,
scaleZerostart: true
}
}).draw();
}
value = value + RG.random(-3,3);
value = ma.max(0,value)
value = ma.min(50,value)
obj.original_data[0].push(Math.min(value + 5, 50));
obj.original_data[1].push(Math.max(value - 5, 0));
obj.original_data[0] = RG.arrayShift(obj.original_data[0]);
obj.original_data[1] = RG.arrayShift(obj.original_data[1]);
obj.draw();
RGraph.Effects.updateCanvas(drawGraph);
}
drawGraph();
};
</script>
<p></p>
This goes in the documents header:
<pre class="code">
<script src="RGraph.common.core.js"></script>
<script src="RGraph.line.js"></script>
</pre>
Put this where you want the chart to show up:
<pre class="code">
<canvas id="cvs" width="1000" height="250">
[No canvas support]
</canvas>
</pre>
This is the code that generates the chart:
<pre class="code">
<script>
window.onload = function ()
{
var obj = null;
var numvalues = 600;
var value = 25;
// RGraph.array_pad(array, length[, value])
var data1 = RGraph.arrayPad([], numvalues, null);
var data2 = RGraph.arrayPad([], numvalues, null);
function drawGraph ()
{
// "cache" this in a local variable
var RG = RGraph;
var ma = Math;
var canvas = document.getElementById("cvs");
RG.clear(canvas);
if (!obj) {
obj = new RGraph.Line({
id: 'cvs',
data: [data1, data2],
options: {
xticks: 100,
backgroundGridAutofitNumvlines: 15,
title: 'Bandwidth used (Mb/s)',
titleXaxis: 'Bandwidth used',
titleXaxisPos: 0.5,
colors: ['black'],
linewidth: 0.5,
yaxispos: 'right',
ymax: 50,
noxaxis: true,
numyticks: 0,
filled: true,
filledRange: true,
filledRangeThreshold: 25,
filledRangeThresholdColors: ['red','#0c0'],
fillstyle: 'red',
colors: ['rgba(0,0,0,0)'],
tickmarks: null,
textAccessible: true,
scaleZerostart: true
}
}).draw();
}
value = value + RG.random(-3,3);
value = ma.max(0,value)
value = ma.min(50,value)
obj.original_data[0].push(Math.min(value + 5, 50));
obj.original_data[1].push(Math.max(value - 5, 0));
obj.original_data[0] = RG.arrayShift(obj.original_data[0]);
obj.original_data[1] = RG.arrayShift(obj.original_data[1]);
obj.draw();
RGraph.Effects.updateCanvas(drawGraph);
}
drawGraph();
};
</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>