<!DOCTYPE html >
<html>
<head>
<script src="../libraries/RGraph.common.core.js" ></script>
<script src="../libraries/RGraph.common.dynamic.js" ></script>
<script src="../libraries/RGraph.bar.js" ></script>
<title>A bar chart with horizontal gradients</title>
<link rel="stylesheet" href="demos.css" type="text/css" media="screen" />
<meta name="robots" content="noindex,nofollow" />
<meta name="description" content="A regular Bar chart but with horizontal gradients that are tailored to each individual bar" />
</head>
<body>
<h1>A bar chart with horizontal gradients</h1>
<p>
This bar chart draws the chart then uses the coordinates of the bars to create gradients (each is specific to a bar),
changes the colors to the gradients and finally redraws the chart.
</p>
<canvas id="cvs" width="600" height="250">[No canvas support]</canvas>
<script>
window.onload = function ()
{
var bar = new RGraph.Bar({
id: 'cvs',
data: [4,8,5,3,4,6,8],
options: {
labels: ['Mon','Tue','Wed','Thu','Fri','Sat','Sun'],
colorsSequential: true,
shadowColor: '#999',
shadow: true,
shadowOffsetx: 0,
shadowOffsety: 0,
shadowBlur: 15,
strokestyle: 'rgba(0,0,0,0)',
backgroundGridAutofitNumvlines: 7,
noyaxis: true,
textAccessible: true
}
}).draw()
/**
* Now the chart has been drawn use the coords to create some appropriate gradients
*/
var colors = [];
for(var i=0; i<bar.coords.length; ++i) {
// Because it's a horizontal gradient the Y coords don't matter
var x1 = bar.coords[i][0];
var y1 = 0;
var x2 = bar.coords[i][0] + bar.coords[i][2];
var y2 = 0;
colors[i] = RGraph.linearGradient(bar, x1, y1, x2, y2, '#c00','red');
}
bar.set('colors', colors);
RGraph.clear(bar.canvas);
RGraph.redraw();
};
</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.bar.js"></script>
</pre>
Put this where you want the chart to show up:
<pre class="code">
<canvas id="cvs" width="600" height="250">
[No canvas support]
</canvas>
</pre>
This is the code that generates the chart:
<pre class="code">
<script>
window.onload = function ()
{
var bar = new RGraph.Bar({
id: 'cvs',
data: [4,8,5,3,4,6,8],
options: {
labels: ['Mon','Tue','Wed','Thu','Fri','Sat','Sun'],
colorsSequential: true,
shadow: true,
shadowColor: '#999',
shadowOffsetx: 0,
shadowOffsety: 0,
shadowBlur: 15,
strokestyle: 'rgba(0,0,0,0)',
backgroundGridAutofitNumvlines: 7,
noyaxis: true,
textAccessible: true
}
}).draw()
<span>/**
* Now the chart has been drawn use the coords to create some appropriate gradients
*/</span>
var colors = [];
for(var i=0; i<bar.coords.length; ++i) {
// Because it's a horizontal gradient the Y coords don't matter
var x1 = bar.coords[i][0];
var y1 = 0;
var x2 = bar.coords[i][0] + bar.coords[i][2];
var y2 = 0;
colors[i] = RGraph.linearGradient(bar, x1, y1, x2, y2, '#c00','red');
}
bar.set('colors', colors);
RGraph.clear(bar.canvas);
RGraph.redraw();
};
</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>