1 <?php ob_start('ob_gzhandler') ?>
5 <meta http-equiv="X-UA-Compatible" content="chrome=1">
8 * o------------------------------------------------------------------------------o
9 * | This file is part of the RGraph package - you can learn more at: |
11 * | http://www.rgraph.net |
13 * | This package is licensed under the RGraph license. For all kinds of business |
14 * | purposes there is a small one-time licensing fee to pay and for non |
15 * | commercial purposes it is free to use. You can read the full license here: |
17 * | http://www.rgraph.net/LICENSE.txt |
18 * o------------------------------------------------------------------------------o
22 <title>RGraph: HTML5 canvas graph library - scatter graph</title>
24 <meta name="keywords" content="rgraph html5 canvas example scatter chart" />
25 <meta name="description" content="RGraph: Scatter graph example" />
27 <link rel="stylesheet" href="../css/website.css" type="text/css" media="screen" />
28 <link rel="icon" type="image/png" href="../images/favicon.png">
30 <script src="../libraries/RGraph.common.core.js" ></script>
31 <script src="../libraries/RGraph.common.context.js" ></script>
32 <script src="../libraries/RGraph.common.annotate.js" ></script>
33 <script src="../libraries/RGraph.common.zoom.js" ></script>
34 <script src="../libraries/RGraph.common.tooltips.js" ></script>
35 <script src="../libraries/RGraph.scatter.js" ></script>
36 <!--[if IE 8]><script src="../excanvas/excanvas.compressed.js"></script><![endif]-->
39 window.onload = function ()
42 [1,9, 'red'], [360,5, 'red'], [150,16, 'red'], [132,12, 'red'],
43 [43,15, 'green'], [12,16, 'green'], [96,11, 'green'], [45,13, 'green'],
44 [61,9, 'blue'], [133,7, 'blue'], [166,1, 'blue'], [333,18, 'blue'],
45 [45,16], [166,4], [12,3], [45,15],
46 [16,16], [98,9], [46,8], [43,4]
49 var scatter1 = new RGraph.Scatter('scatter1', data);
50 scatter1.Set('chart.ticksize', 4);
51 scatter1.Set('chart.background.barcolor1', 'white');
52 scatter1.Set('chart.background.barcolor2', 'white');
53 scatter1.Set('chart.background.grid.autofit', true);
54 scatter1.Set('chart.background.grid.autofit.numhlines', 10);
55 scatter1.Set('chart.labels', [
61 scatter1.Set('chart.xmax', 365); // Necessary
62 scatter1.Set('chart.title', 'A scatter graph (zoom)');
63 scatter1.Set('chart.gutter', 40);
64 scatter1.Set('chart.ylabels.count', 5);
65 scatter1.Set('chart.title.xaxis', 'Quarter');
66 scatter1.Set('chart.title.yaxis', 'Total pieces');
69 if (!RGraph.isIE8()) {
70 scatter1.Set('chart.zoom.factor', 2);
71 scatter1.Set('chart.zoom.mode', 'area');
76 [10,15,'red'],[13,16,'red'],[12,11,'red'],[15,16,'red'],[20,19,'red'],[19,16,'red'],[13,15,'red'],[11,12,'red'],[13,16,'red'],[5,19,'red'],[16,15,'red'],[13,15,'red'],[14,14,'red'],[12,12,'red'],
77 [5,4,'green'],[6,14,'green'],[19,12,'green'],[3,5,'green'],[1,16,'green'],[13,5,'green'],[15,15,'green'],[13,5,'green'],[4,9,'green'],[16,6,'green'],[13,18,'green'],[18,12,'green'],[19,18,'green'],[13,16,'green'],[15,14,'green'],
78 [12,4,'blue'],[4,23,'blue'],[13,8,'blue'],[12,12,'blue'],[18,4,'blue'],[4,18,'blue'],[11,2,'blue'],[4,3,'blue'],[5,8,'blue'],[1,9,'blue'],[4,6,'blue'],[16,8,'blue'],[17,8,'blue'],[19,9,'blue'],[13,5,'blue'],[16,21,'blue'],
79 [12,4],[13,12],[11,16],[4,19],[4,3],[5,6],[1,9],[4,12],[6,12],[8,8],[16,6],[13,5],[15,13],[23,23,'red'], [1,1, 'gray'],
80 [1,4,'gray'], [2,3,'gray'], [1,6,'gray'], [2,3,'gray'], [2,5,'gray'], [3,7,'gray'], [1,4,'gray'], [2,7,'gray']
83 var scatter2 = new RGraph.Scatter('scatter2', data2);
84 scatter2.Set('chart.ylabels.count', 10);
85 scatter2.Set('chart.background.barcolor1', 'white');
86 scatter2.Set('chart.background.barcolor2', 'white');
87 scatter2.Set('chart.background.hbars', [
88 [0,null,'rgba(0,255,0,0.3)']
90 scatter2.Set('chart.background.grid.autofit', true);
91 scatter2.Set('chart.background.grid.autofit.numhlines', 10);
92 scatter2.Set('chart.labels', ['Wk1', 'Wk2', 'Wk3', 'Wk4']);
93 scatter2.Set('chart.xmax', 28); // Necessary
94 scatter2.Set('chart.defaultcolor', 'black'); // Optional
95 scatter2.Set('chart.title', 'A scatter chart (center X axis, context, crosshairs)');
96 scatter2.Set('chart.gutter', 40);
97 scatter2.Set('chart.tickmarks', 'square');
98 scatter2.Set('chart.ticksize', 4);
99 scatter2.Set('chart.ymax', 30);
100 scatter2.Set('chart.units.pre', '$');
101 scatter2.Set('chart.contextmenu', [['Clear', function () {RGraph.Clear(scatter2.canvas); scatter2.Draw();}]]);
103 if (!RGraph.isIE8()) {
104 scatter2.Set('chart.crosshairs', true);
105 scatter2.Set('chart.crosshairs.coords', true);
106 scatter2.Set('chart.crosshairs.coords.labels.x', 'Day');
107 scatter2.Set('chart.crosshairs.coords.labels.y', 'Amount');
110 scatter2.Set('chart.line.colors', ['red','blue','black']);
111 scatter2.Set('chart.key', ['Bob','Fred','Gaz']);
117 var scatter8 = new RGraph.Scatter('scatter8', [
118 [10,[21,22,26,31,35, 'red', 'green']],
119 [105,[10,10,15,25,30, 'red', 'green']],
120 [125,[10,15,25,35,45, 'red', 'green']],
121 [325,[10,15,25,35,45, 'yellow', 'green', 30]] // The last value is the width (in pixels)
123 scatter8.Set('chart.title', 'An example of a boxplot (minimum Y value)');
124 scatter8.Set('chart.tickmarks', null);
125 scatter8.Set('chart.labels', ['Q1', 'Q2', 'Q3', 'Q4']);
126 scatter8.Set('chart.xmax', 365);
127 scatter8.Set('chart.ymax', 50);
128 scatter8.Set('chart.ymin', 10);
129 scatter8.Set('chart.boxplot.width', 12); // The default width
130 scatter8.Set('chart.background.vbars', [[182.5, 91.125, 'rgba(0,255,0,0.5)']]);
133 var scatter9 = new RGraph.Scatter('scatter9',
134 [[50,31, null, '<b>Fred</b><br />Fred is at the start'], [80,49, null, '<b>Juan</b><br />Juan is in the middle'], [280,45, null, '<b>Hoolio</b><br />Hoolio is at the end']],
135 [[25,21], [67,22], [289,35]]);
136 scatter9.Set('chart.title', 'A stepped scatter chart (minimum Y value)');
137 scatter9.Set('chart.labels', ['Q1', 'Q2', 'Q3', 'Q4']);
138 scatter9.Set('chart.xmax', 365);
139 scatter9.Set('chart.ymax', 50);
140 scatter9.Set('chart.line', true);
141 scatter9.Set('chart.line.stepped', [true, false]);
142 scatter9.Set('chart.line.linewidth', [1,1]);
143 scatter9.Set('chart.line.colors', ['red', 'blue']);
144 scatter9.Set('chart.ticksize', 5);
145 scatter9.Set('chart.key', ['Richard', 'Robert']);
146 scatter9.Set('chart.key.position', 'gutter');
147 scatter9.Set('chart.key.position.y', scatter9.canvas.height - scatter9.Get('chart.gutter') - 20);
154 <!-- Social networking buttons -->
157 function HideTwitterDIV ()
159 document.getElementById("twitter_div").style.opacity = 0;
160 document.getElementById("twitter_div").style.display = 'none';
164 function ShowTwitterDIV (e)
166 var e = RGraph.FixEventObject(document.all ? event : e);
167 var div = document.getElementById("twitter_div");
168 var img = document.getElementById("twitter_icon");
170 div.style.display = 'block';
171 div.style.left = (RGraph.getCanvasXY(img)[0] + img.offsetWidth - div.offsetWidth + 110) + 'px';
172 div.style.top = (RGraph.getCanvasXY(img)[1] - 1) + 'px';
177 setTimeout('document.getElementById("twitter_div").style.opacity = 0.2;', 25);
178 setTimeout('document.getElementById("twitter_div").style.opacity = 0.4;', 50);
179 setTimeout('document.getElementById("twitter_div").style.opacity = 0.6;', 100);
180 setTimeout('document.getElementById("twitter_div").style.opacity = 0.8;', 125);
181 setTimeout('document.getElementById("twitter_div").style.opacity = 1.0;', 150);
190 * This code installs the event handler that hides the Twitter DIV
192 if (RGraph.isIE8()) {
193 window.attachEvent('onload', function () {document.body.attachEvent('onclick', HideTwitterDIV);});
195 window.addEventListener('click', HideTwitterDIV, false);
199 <!-- The twitter DIV -->
200 <div id="twitter_div" style="position: absolute;top: 0;left: 0;background-color: #eee;border: 2px dashed black;box-shadow: 0 0 15px #aaa;-moz-box-shadow: 0 0 15px #aaa;-webkit-box-shadow: 0 0 15px #aaa;padding: 3px;display: none;opacity: 0;z-index: 99;">
201 <a href="http://twitter.com/home/?status=RGraph%3A+HTML5+canvas+graph+library+based+on+the+HTML5+canvas+tag+http%3A%2F%2Fwww.rgraph.net+%23rgraph+%23html5+%23canvas" target="_blank" title="Share on Twitter" rel="nofollow" style="text-decoration: none">Tweet about RGraph</a><br>
202 <a href="http://twitter.com/_rgraph" style="text-decoration: none" rel="nofollow" target="_blank">Follow for HTML5 news</a>
205 <div id="social_icons" class="warning" style="top: 0; left: 5px; position: absolute">
208 if (navigator.userAgent.indexOf('Opera') == -1) {
209 document.getElementById("social_icons").style.position = 'fixed';
210 document.getElementById("twitter_div").style.position = 'fixed';
215 <b style="display: inline-block; position: relative; top: 1px">Bookmark and share:</b>
219 <a title="Bookmark with delicious" href="http://delicious.com/save?jump=close&v=4&noui&jump=close&url=http://www.rgraph.net¬es=RGraph%20is%20a%20HTML5%20based%20graph%20library%20supporting%20a%20wide%20range%20of%20different%20graph%20types:Bar,%20Bipolar,%20Donut,%20Funnel,%20Gantt,%20Horizontal%20Bar,%20LED,%20Line,%20Meter,%20Odometer,%20Pie,%20Progress%20Bar,%20Rose,%20RScatter,%20Scatter%20and%20Traditional%20Radar&title=RGraph:%20HTML5%20canvas%20graph%20library%20based%20on%20the%20HTML5%20canvas%20tag" target="_blank">
220 <img src="../images/delicious.png" alt="Bookmark with delicious" width="22" height="22" border="0" align="absmiddle" />
223 <a href="" target="_blank" onmouseover="if (document.getElementById('twitter_div').style.display == 'none') ShowTwitterDIV(event);" onclick="event.stopPropagation(); event.cancelBubble = true; return false">
224 <img src="../images/twitter.png" id="twitter_icon" alt="tweet this site" width="22" height="22" border="0" align="absmiddle" />
229 <a title="Post to Google Buzz!" href="" onclick="window.open('http://www.google.com/buzz/post?url=http://www.rgraph.net&imageurl=http://www.rgraph.net/images/logo.png', 'google_buzz_window', 'width=800,height=400,top=100,left=100'); return false">
230 <img src="../images/buzz.png" width="22" height="22" alt="Post to Google Buzz!" align="absmiddle" style="position: relative; top: -2px; border: 0" border="0"/>
234 <a title="Share RGraph on Facebook" href="" onclick="window.open('http://www.facebook.com/sharer.php?u=http://www.rgraph.net&t=RGraph:%20HTML5%20canvas%20graph%20library', 'facebook_window', 'width=500,height=300,top=100,left=100'); return false">
235 <img src="../images/facebook.png" width="22" height="22" alt="Post to Facebook" align="absmiddle" style="position: relative; top: -2px; border: 0" border="0"/>
238 <a href="mailto:share@friendfeed.com" title="Share on FriendFeed">
239 <img src="../images/friendfeed.png" width="22" height="22" alt="Share on FriendFeed" border="0" align="absmiddle" />
242 <a href="http://www.stumbleupon.com/submit?url=http://www.rgraph.net" target="_blank" title="Share on StumbleUpon" >
243 <img src="../images/stumble.png" alt="Stumble! this site" width="22" height="22" border="0" align="absmiddle" />
248 <!-- /Social networking buttons -->
251 <div id="breadcrumb">
252 <a href="../index.html">RGraph: HTML5 canvas graph library</a>
254 <a href="./index.html">Examples</a>
259 <h1>RGraph: HTML5 canvas graph library - Scatter graph</h1>
262 if (RGraph.isIE8()) {
263 document.write('<div style="background-color: #fee; border: 2px dashed red; padding: 5px"><b>Important</b><br /><br /> Internet Explorer 8 does not natively support the HTML5 canvas tag, so if you want to see the graphs, you can either:<ul><li>Install <a href="http://code.google.com/chrome/chromeframe/">Google Chrome Frame</a></li><li>Use ExCanvas. This is provided in the RGraph Archive.</li><li>Use another browser entirely. Your choices are Firefox 3.5+, Chrome 2+, Safari 4+ or Opera 10.5+. </li></ul> <b>Note:</b> Internet Explorer 9 fully supports the canvas tag. Click <a href="http://groups.google.com/group/rgraph/browse_thread/thread/c5651ff8c56b8f3c#" target="_blank">here</a> to see some screenshots.</div>');
268 The Scatter graph uses two variables to plot points and makes it clear where there are congregations. The data points
269 make up the X and Y coordinates. The labels on the X axis are separate from the X units, allowing you to "group" them. For
270 example, like the example, you could set the maxium X value to be 365, but only have four labels. That way you would
271 have a granularity of a day, but the X axis would only have four labels. Like the example.
276 <li><a href="../docs/scatter.html">Scatter graph API documentation</a></li>
280 <canvas id="scatter1" width="450" height="250">[No canvas support]</canvas>
281 <canvas id="scatter2" width="450" height="250">[No canvas support]</canvas>
283 <a name="boxplots"></a>
284 <table border="0" style="float: left; width: 450px">
286 <td><canvas id="scatter8" width="450" height="250">[No canvas support]</canvas></td>
291 <div style="background-color: #eee; border: 2px dashed gray; padding: 3px">
292 This is an example of a box plot. You can read about them <a href="../docs/scatter.html#boxplots">here</a>.
298 <canvas id="scatter9" width="450" height="250">[No canvas support]</canvas>