<!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.tooltips.js" ></script>
<script src="../libraries/RGraph.common.effects.js" ></script>
<script src="../libraries/RGraph.pie.js" ></script>
<title>Pie chart Explode</title>
<meta name="robots" content="noindex,nofollow" />
<meta name="description" content="A Pie chart that explodes when a segment is clicked" />
</head>
<body>
<h1>Pie chart explode (onclick)</h1>
<p>
This Pie chart is similar to the "explode onmousemove demo. But instead of
using the onmousemove event this uses the onclick event. As a result of using
the click event instead of the mousemove event you will see far fewer
peculiarities.
</p>
<canvas id="cvs" width="450" height="300">[No canvas support]</canvas>
<script>
window.onload = function ()
{
// Create the Pie chart
var pie = new RGraph.Pie({
id: 'cvs',
data: [4,6,3,5,2,5,8],
options: {
labels: ['Monday', 'Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday'],
labelsSticksList: true,
textColor: '#aaa',
exploded: 5,
radius: 100,
linewidth: 1,
textAccessible: true
}
}).on('click', function (e, shape)
{
if (!pie.get('exploded') || !pie.get('exploded')[shape['index']]) {
pie.explodeSegment(shape['index'], 25);
}
e.stopPropagation();
}).on('mousemove', function (e, shape)
{
e.target.style.cursor = 'pointer';
}).draw()
// Add the window click listener that resets the Pie chart
window.onmousedown = function (e)
{
pie.set('exploded', 5);
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.common.tooltips.js"></script>
<script src="RGraph.common.effects.js"></script>
<script src="RGraph.pie.js"></script>
</pre>
Put this where you want the chart to show up:
<pre class="code">
<canvas id="cvs" width="450" height="300">
[No canvas support]
</canvas>
</pre>
This is the code that generates the chart:
<pre class="code">
<script>
window.onload = function ()
{
<span>// Create the Pie chart</span>
var pie = new RGraph.Pie({
id: 'cvs',
data: [4,6,3,5,2,5,8],
options: {
labels: ['Monday', 'Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday'],
labelsSticksList: true,
textColor: '#aaa',
exploded: 5,
radius: 100,
linewidth: 1,
textAccessible: true
}
}).on('click', function (e, shape)
{
if (!pie.get('exploded') || !pie.get('exploded')[shape['index']]) {
pie.explodeSegment(shape['index'], 25);
}
e.stopPropagation();
}).on('mousemove', function (e, shape)
{
e.target.style.cursor = 'pointer';
}).draw()
<span>// Add the window click listener that resets the Pie chart</span>
window.onmousedown = function (e)
{
pie.set('exploded', 5);
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>