initial commit
[home-automation.git] / RGraph / examples / scatter.html
1 <?php ob_start('ob_gzhandler') ?>
2 <!DOCTYPE html>
3 <html>
4 <head>
5     <meta http-equiv="X-UA-Compatible" content="chrome=1">
6     <!--
7         /**
8         * o------------------------------------------------------------------------------o
9         * | This file is part of the RGraph package - you can learn more at:             |
10         * |                                                                              |
11         * |                          http://www.rgraph.net                               |
12         * |                                                                              |
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:  |
16         * |                                                                              |
17         * |                      http://www.rgraph.net/LICENSE.txt                       |
18         * o------------------------------------------------------------------------------o
19         */
20     -->
21
22     <title>RGraph: HTML5 canvas graph library - scatter graph</title>
23     
24     <meta name="keywords" content="rgraph html5 canvas example scatter chart" />
25     <meta name="description" content="RGraph: Scatter graph example" />
26
27     <link rel="stylesheet" href="../css/website.css" type="text/css" media="screen" />
28     <link rel="icon" type="image/png" href="../images/favicon.png">
29
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]-->
37
38     <script>
39         window.onload = function ()
40         {
41             var data = [
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]
47                    ];
48
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', [ 
56                                             ['Q1', 0], 
57                                             ['Q2', 90], 
58                                             ['Q3', 180], 
59                                             ['Q4', 270] 
60                                          ]);
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');
67
68
69             if (!RGraph.isIE8()) {
70                 scatter1.Set('chart.zoom.factor', 2);
71                 scatter1.Set('chart.zoom.mode', 'area');
72             }
73             scatter1.Draw();
74
75             var data2 = [
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']
81                     ];
82
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)']
89                                                    ]);
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();}]]);
102
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');
108             }
109             
110             scatter2.Set('chart.line.colors', ['red','blue','black']);
111             scatter2.Set('chart.key', ['Bob','Fred','Gaz']);
112
113             scatter2.Draw();
114
115             
116             
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)
122                                                       ]);
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)']]);
131             scatter8.Draw();
132             
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);
148             scatter9.Draw();
149         }
150     </script>
151 </head>
152 <body>
153
154     <!-- Social networking buttons -->
155     
156     <script>
157         function HideTwitterDIV ()
158         {
159             document.getElementById("twitter_div").style.opacity = 0;
160             document.getElementById("twitter_div").style.display = 'none';
161         }
162
163
164         function ShowTwitterDIV (e)
165         {
166             var e   = RGraph.FixEventObject(document.all ? event : e);
167             var div = document.getElementById("twitter_div");
168             var img = document.getElementById("twitter_icon");
169
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';
173
174             /**
175             * Fade it in
176             */
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);
182
183             e.stopPropagation();
184
185             return false;
186         }
187         
188
189         /**
190         * This code installs the event handler that hides the Twitter DIV
191         */
192         if (RGraph.isIE8()) {
193              window.attachEvent('onload', function () {document.body.attachEvent('onclick', HideTwitterDIV);});
194         } else {
195             window.addEventListener('click', HideTwitterDIV, false);
196         }
197     </script>
198
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&nbsp;about&nbsp;RGraph</a><br>
202         <a href="http://twitter.com/_rgraph" style="text-decoration: none" rel="nofollow" target="_blank">Follow for HTML5 news</a> 
203     </div>
204
205     <div id="social_icons" class="warning" style="top: 0; left: 5px; position: absolute">
206         <script>
207             // Opera fix
208             if (navigator.userAgent.indexOf('Opera') == -1) {
209               document.getElementById("social_icons").style.position = 'fixed';
210               document.getElementById("twitter_div").style.position = 'fixed';
211     
212             }
213         </script>
214     
215         <b style="display: inline-block; position: relative; top: 1px">Bookmark and share:</b>
216     
217     
218             <div id="social">
219                 <a title="Bookmark with delicious" href="http://delicious.com/save?jump=close&v=4&noui&jump=close&url=http://www.rgraph.net&notes=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" /> 
221                 </a> 
222      
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" />
225                 </a>
226     
227     
228 <!--
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"/>
231                 </a>
232     
233     
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"/>
236                 </a>
237     
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" /> 
240                 </a>
241     
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" /> 
244                 </a>
245 -->
246             </div>
247     </div>
248     <!-- /Social networking buttons -->
249
250
251 <div id="breadcrumb">
252     <a href="../index.html">RGraph: HTML5 canvas graph library</a>
253     >
254     <a href="./index.html">Examples</a>
255     >
256     Scatter graph
257 </div>
258
259 <h1>RGraph: HTML5 canvas graph library - Scatter graph</h1>
260
261     <script>
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>');
264         }
265     </script>
266     
267     <p>
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.
272     </p>
273
274     <div>
275         <ul>
276             <li><a href="../docs/scatter.html">Scatter graph API documentation</a></li>
277         </ul>
278     </div>
279
280     <canvas id="scatter1" width="450" height="250">[No canvas support]</canvas>
281     <canvas id="scatter2" width="450" height="250">[No canvas support]</canvas>
282
283     <a name="boxplots"></a>
284     <table border="0" style="float: left; width: 450px">
285         <tr>
286             <td><canvas id="scatter8" width="450" height="250">[No canvas support]</canvas></td>
287         </tr>
288         
289         <tr>
290             <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>.
293                 </div>
294             </td>
295         </tr>
296     </table>
297     
298     <canvas id="scatter9" width="450" height="250">[No canvas support]</canvas>
299     
300     
301 </body>
302 </html>