initial commit
[home-automation.git] / RGraph / docs / rose.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 personal,    |
15         * | charity and educational purposes it is free to use. You can read the full    |
16         * | license here:                                                                |
17         * |                      http://www.rgraph.net/LICENSE.txt                       |
18         * o------------------------------------------------------------------------------o
19         */
20     -->
21     <title>RGraph: HTML5 canvas graph library - rose chart documentation</title>
22     <link rel="stylesheet" href="../css/website.css" type="text/css" media="screen" />
23     <link rel="icon" type="image/png" href="/favicon.png">
24 </head>
25 <body>
26
27     <!-- Social networking buttons -->
28     <script src="../libraries/RGraph.common.core.js" ></script>
29     
30     <script>
31         function HideTwitterDIV ()
32         {
33             document.getElementById("twitter_div").style.opacity = 0;
34             document.getElementById("twitter_div").style.display = 'none';
35         }
36
37
38         function ShowTwitterDIV (e)
39         {
40             var e   = RGraph.FixEventObject(document.all ? event : e);
41             var div = document.getElementById("twitter_div");
42             var img = document.getElementById("twitter_icon");
43
44             div.style.display = 'block';
45             div.style.left    = (RGraph.getCanvasXY(img)[0] + img.offsetWidth - div.offsetWidth + 110) + 'px';
46             div.style.top     = (RGraph.getCanvasXY(img)[1] - 1) + 'px';
47
48             /**
49             * Fade it in
50             */
51             setTimeout('document.getElementById("twitter_div").style.opacity = 0.2;', 25);
52             setTimeout('document.getElementById("twitter_div").style.opacity = 0.4;', 50);
53             setTimeout('document.getElementById("twitter_div").style.opacity = 0.6;', 100);
54             setTimeout('document.getElementById("twitter_div").style.opacity = 0.8;', 125);
55             setTimeout('document.getElementById("twitter_div").style.opacity = 1.0;', 150);
56
57             e.stopPropagation();
58
59             return false;
60         }
61
62         /**
63         * This code installs the event handler that hides the Twitter DIV
64         */
65         if (RGraph.isIE8()) {
66              window.attachEvent('onload', function () {document.body.attachEvent('onclick', HideTwitterDIV);});
67         } else {
68             window.addEventListener('click', HideTwitterDIV, false);
69         }
70     </script>
71
72     <!-- The twitter DIV --> 
73     <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;"> 
74         <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>
75         <a href="http://twitter.com/_rgraph" style="text-decoration: none" rel="nofollow" target="_blank">Follow for HTML5 news</a> 
76     </div>
77
78     <div id="social_icons" class="warning" style="top: 0; left: 5px; position: absolute">
79         <script>
80             // Opera fix
81             if (navigator.userAgent.indexOf('Opera') == -1) {
82               document.getElementById("social_icons").style.position = 'fixed';
83               document.getElementById("twitter_div").style.position = 'fixed';
84     
85             }
86         </script>
87     
88         <b style="display: inline-block; position: relative; top: 1px">Bookmark and share:</b>
89     
90     
91             <div id="social">
92                 <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">
93                     <img src="../images/delicious.png" alt="Bookmark with delicious" width="22" height="22" border="0" align="absmiddle" /> 
94                 </a> 
95      
96                 <a href="" target="_blank" onmouseover="if (document.getElementById('twitter_div').style.display == 'none') ShowTwitterDIV(event);" onclick="event.stopPropagation(); event.cancelBubble = true; return false">
97                     <img src="../images/twitter.png" id="twitter_icon" alt="tweet this site" width="22" height="22" border="0" align="absmiddle" />
98                 </a>
99     
100     
101 <!--
102                 <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">
103                     <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"/>
104                 </a>
105     
106     
107                 <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">
108                     <img src="../images/facebook.png" width="22" height="22" alt="Post to Facebook" align="absmiddle" style="position: relative; top: -2px; border: 0" border="0"/>
109                 </a>
110     
111                 <a href="mailto:share@friendfeed.com" title="Share on FriendFeed"> 
112                     <img src="../images/friendfeed.png" width="22" height="22" alt="Share on FriendFeed" border="0" align="absmiddle" /> 
113                 </a>
114     
115                 <a href="http://www.stumbleupon.com/submit?url=http://www.rgraph.net" target="_blank" title="Share on StumbleUpon" >
116                     <img src="../images/stumble.png" alt="Stumble! this site" width="22" height="22" border="0" align="absmiddle" /> 
117                 </a>
118 -->
119             </div>
120     </div>
121     <!-- /Social networking buttons -->
122
123     <div id="breadcrumb">
124         <a href="../index.html">RGraph: HTML5 canvas graph library</a>
125         >
126         <a href="index.html">Documentation</a>
127         >
128         Rose chart
129     </div>
130
131     <h1>RGraph: HTML5 canvas graph library - Rose chart documentation</h1>
132
133     <script>
134         if (RGraph.isIE8()) {
135             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>');
136         }
137     </script>
138     
139     <p>
140         The example file is <a href="../examples/rose.html">here</a>.
141     </p>
142     
143     <pre class="code">
144 &lt;script&gt;
145     window.onload = function ()
146     {
147         var data = [41,37,16,3,3];
148     
149         var rose = new RGraph.Rose('myRose', data);
150         rose.Set('chart.labels', ['MSIE 7 (41%)',
151                                   'MSIE 6 (37%)',
152                                   'Firefox (16%)',
153                                   'Safari (3%)',
154                                   'Other (3%)']);
155         rose.Draw();
156     }
157 &lt;/script&gt;
158 </pre>
159
160         <a name="available.properties"></a>
161     <ul>
162         <li><a href="#available.properties">Properties</a></li>
163         <li><a href="#available.methods">Methods</a></li>
164     </ul>
165
166     <h2>Properties</h2>
167     
168     <p>
169         You can use these properties to control how the Rose chart appears. You can set them by using the Set() method. Eg:
170     </p>
171     
172     <p>
173         <b>myRose.Set('name', 'value');</b>
174     </p>
175
176     <ul>
177         <li><a href="#margins">Margins</a></li>
178         <li><a href="#colors">Colors</a></li>
179         <li><a href="#labels and text">Labels and text</a></li>
180         <li><a href="#titles">Titles</a></li>
181         <li><a href="#axis properties">Axis properties</a></li>
182         <li><a href="#scale">Scale</a></li>
183         <li><a href="#key">Key</a></li>
184         <li><a href="#interactive features">Interactive features</a></li>
185         <li><a href="#zoom">Zoom</a></li>
186     </ul>
187
188
189
190 <a name="margins"></a>
191 <h3 style="border: 1px solid #aaa; background-color: #eee; font-style: italic; padding: 5px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius: 10px">Margins</h3>            <a name="chart.gutter"></a>
192 <b>chart.gutter</b><br />
193             The gutter used on the chart<br /><i>Default: 25</i><br /><br />
194 <a name="colors"></a>
195 <h3 style="border: 1px solid #aaa; background-color: #eee; font-style: italic; padding: 5px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius: 10px">Colors</h3>            <a name="chart.colors"></a>
196 <b>chart.colors</b><br />
197             An array of colors to be used by the chart. <br /><i>Default: ['rgb(255,0,0)', 'rgb(0,255,255)', 'rgb(0,255,0)', 'rgb(127,127,127)', 'rgb(0,0,255)', 'rgb(255,128,255)']</i><br /><br />
198             <a name="chart.colors.alpha"></a>
199 <b>chart.colors.alpha</b><br />
200             Instead of using <i>rgba()</i>, you can use color definitions such as <i>red</i> along with this setting to add transparency. <br /><i>Default: null</i></i><br /><br />
201 <a name="labels and text"></a>
202 <h3 style="border: 1px solid #aaa; background-color: #eee; font-style: italic; padding: 5px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius: 10px">Labels and text</h3>            <a name="chart.text.font"></a>
203 <b>chart.text.font</b><br />
204             The font used to render the text.<br /><i>Default: Verdana</i><br /><br />
205             <a name="chart.text.color"></a>
206 <b>chart.text.color</b><br />
207             The color of the labels. <br /><i>Default: black</i><br /><br />
208             <a name="chart.text.size"></a>
209 <b>chart.text.size</b><br />
210             The size of the text (in points).<br /> <i>Default: 10</i><br /><br />
211             <a name="chart.labels"></a>
212 <b>chart.labels</b><br />
213             The labels, if any, for the graph.<br /><i>Default: none</i><br /><br />
214             <a name="chart.labels.axes"></a>
215 <b>chart.labels.axes</b><br />
216             This controls the axes that show the scale labels. Each letter stands for the appropriate axis (North, South, East and West)<br /><i>Default: nsew</i><br /><br />
217             <a name="chart.labels.position"></a>
218 <b>chart.labels.position</b><br />
219             This can be either <i>center</i> or <i>edge</i> and determines the position of the labels.<br /><i>Default: center</i><br /><br />
220 <a name="titles"></a>
221 <h3 style="border: 1px solid #aaa; background-color: #eee; font-style: italic; padding: 5px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius: 10px">Titles</h3>            <a name="chart.title"></a>
222 <b>chart.title</b><br />
223             The title of the chart. <br /><i>Default: none</i><br /><br />
224
225 <a name="chart.title.background"></a>
226 <b>chart.title.background</b><br />
227 The background color (if any) for the title.<br />
228 <i>Default: null</i><br /><br />
229
230             <a name="chart.title.color"></a>
231 <b>chart.title.color</b><br />
232             The color of the title.<br /> <i>Default: black</i><br /><br />
233             <a name="chart.title.hpos"></a>
234 <b>chart.title.hpos</b><br />
235             This allows you to completely override the horizontal positioning of the title. It should be a number between 0 and 1, and is multiplied with the whole width of the canvas and then used as the horizontal position. <br /><i>Default: null</i><br /><br />
236             <a name="chart.title.vpos"></a>
237 <b>chart.title.vpos</b><br />
238             This allows you to completely override the vertical positioning of the title. It should be a number between 0 and 1, and is multiplied with the gutter and then used as the vertical position. It can be useful if you need to have a large gutter.<br /><i>Default: null</i><br /><br />
239
240 <a name="axis properties"></a>
241             <h3 style="border: 1px solid #aaa; background-color: #eee; font-style: italic; padding: 5px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius: 10px">Axis properties</h3>            <a name="chart.ymax"></a>
242             <b>chart.ymax</b><br />
243             This can be set to control the maximum value of the scale. It's so called to maintain a degree of API compatibility across graph libraries.<br /><i>Default: null</i><br /><br />
244
245 <a name="scale"></a>
246             <h3 style="border: 1px solid #aaa; background-color: #eee; font-style: italic; padding: 5px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius: 10px">Scale</h3>
247
248             <a name="chart.scale.round"></a>
249             <b>chart.scale.round</b><br />
250             Whether to round the maximum scale value up or not. This will produce slightly better scales in some instances.<br />
251             <i>Default: null</i><br /><br />
252
253
254
255             <a name="key"></a>
256             <h3 style="border: 1px solid #aaa; background-color: #eee; font-style: italic; padding: 5px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius: 10px">Key</h3>
257             
258             <a name="chart.key"></a>
259             <b>chart.key</b><br />
260             An array of key information. <br />
261             <i>Default: [] (An empty array)</i><br /><br />
262
263             <a name="chart.key.background"></a>
264             <b>chart.key.background</b><br />
265             The color of the key background. Typically white, you could set this to something like rgba(255,255,255,0.7) to allow people to see things behind it.<br>
266             <i>Default: white</i><br /><br />
267             
268             <a name="chart.key.position"></a>
269             <b>chart.key.position</b><br />
270             Determines the position of the key.Either <b>graph</b> (default), or <b>gutter</b>.<br />
271             <i>Default: graph</i><br /><br />
272             
273             <b>chart.key.position.x</b><br />
274             This allows you to specify a specific X coordinate for the key.<br />
275             <i>Default: null</i><br /><br />
276             
277             <b>chart.key.position.y</b><br />
278             This allows you to specify a specific Y coordinate for the key.<br />
279             <i>Default: null</i><br /><br />
280             
281             <b>chart.key.position.gutter.boxed</b><br />
282             If you have the key in gutter mode (ie horizontal), this allows you to give a background color.<br />
283             <i>Default: true</i><br /><br />
284             
285             <a name="chart.key.shadow"></a>
286             <b>chart.key.shadow</b><br />
287             Whether a small drop shadow is applied to the key.<br />
288             <i>Default: false</i><br /><br />
289
290             <a name="chart.key.shadow.color"></a>
291             <b>chart.key.shadow.color</b><br />
292             The color of the shadow.<br />
293             <i>Default: #666</i><br /><br />
294
295             <a name="chart.key.shadow.blur"></a>
296             <b>chart.key.shadow.blur</b><br />
297             The extent of the blurring effect used on the shadow.<br />
298             <i>Default: 3</i><br /><br />
299
300             <a name="chart.key.shadow.offsetx"></a>
301             <b>chart.key.shadow.offsetx</b><br />
302             The X offset of the shadow.<br />
303             <i>Default: 2</i><br /><br />
304
305             <a name="chart.key.shadow.offsety"></a>
306             <b>chart.key.shadow.offsety</b><br />
307             The Y offset of the shadow.<br />
308             <i>Default: 2</i><br /><br />
309
310             <b>chart.key.rounded</b><br />
311             This controls whether the corners of the key (in graph mode) are curved. If the key is gutter mode, this has no effect.<br />
312             <i>Default: false</i><br /><br />
313             
314             <b>chart.key.color.shape</b><br />
315             This can be <i>square</i>, <i>circle</i> or <i>line</i> and controls how the color indicators in the key appear.<br />
316             <i>Default: square</i><br /><br />
317
318
319
320 <a name="interactive features"></a>
321 <h3 style="border: 1px solid #aaa; background-color: #eee; font-style: italic; padding: 5px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius: 10px">Interactive features</h3>            <a name="chart.tooltips"></a>
322 <b>chart.tooltips</b><br />
323             An array of tooltips. You can use HTML if you so wish.<br /> <i>Default: [] (An empty array)</i><br /><br />
324             <a name="chart.tooltips.effect"></a>
325 <b>chart.tooltips.effect</b><br />
326             The tooltip effect used. Can be either <b>fade</b> or <b>expand</b>.<br /><i>Default: fade</i><br /><br />
327             <a name="chart.tooltips.css.class"></a>
328 <b>chart.tooltips.css.class</b><br />
329             This is the name of the CSS class the graph uses.<br /><i>Default: RGraph_tooltip</i><br /><br />
330             <a name="chart.tooltips.override"></a>
331 <b>chart.tooltips.override</b><br />
332             If you wish to handle showing tooltips yourself, this should be a function object which does just that. There's more information on the <a href="tooltips.html">tooltips documentation page</a><br /><i>Default: null</i><br /><br />
333             <a name="chart.contextmenu"></a>
334 <b>chart.contextmenu</b><br />
335             An array of context menu items. More information on context menus is <a href="context.html">here</a>.<br /><i>Default: [] (An empty array)</i><br /><br />
336             <a name="chart.annotatable"></a>
337 <b>chart.annotatable</b><br />
338             Whether annotations are enabled for the chart (ie you can draw on the chart interactively.<br /><i>Default: false</i><br /><br />
339             <a name="chart.annotate.color"></a>
340 <b>chart.annotate.color</b><br />
341             If you do not allow the use of the palette, then this will be the only colour allowed for annotations.<br /><i>Default: black</i><br /><br />
342             <a name="chart.resizable"></a>
343 <b>chart.resizable</b><br />
344             Defaulting to false, this determines whether your graph will be resizable. Because of the numerous event handlers this has to install code on, This feature is unlikely to work with other dynamic features (the context menu is fine however).<br /><i>Default: false</i><br /><br />
345             <a name="chart.adjustable"></a>
346 <b>chart.adjustable</b><br />
347             Defaulting to false, this determines whether your rose chart will be adjustable (click the edge of a segment and drag to adjust it). <br /><i>Default: false</i><br /><br />
348 <a name="zoom"></a>
349 <h3 style="border: 1px solid #aaa; background-color: #eee; font-style: italic; padding: 5px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius: 10px">Zoom</h3>            <a name="chart.zoom.mode"></a>
350 <b>chart.zoom.mode</b><br />
351             Can be used to control whether the zoom is in thumbnail or canvas mode. Possible values are: <i>thumbnail</i> and <i>canvas</i>.<br /><i>Default: canvas</i><br /><br />
352             <a name="chart.zoom.factor"></a>
353 <b>chart.zoom.factor</b><br />
354             This is the factor that the graph will be zoomed by (bigger values means more zoom)<br /><i>Default: 1.5</i><br /><br />
355             <a name="chart.zoom.fade.in"></a>
356 <b>chart.zoom.fade.in</b><br />
357             Whether the zoomed canvas fades in or not. This also can be used to control the fade in for the zoom in thumbnail mode.<br /><i>Default: true</i><br /><br />
358             <a name="chart.zoom.fade.out"></a>
359 <b>chart.zoom.fade.out</b><br />
360             Whether the zoomed canvas fades out or not. This also can be used to control the fade in for the zoom in thumbnail mode.<br /><i>Default: true</i><br /><br />
361             <a name="chart.zoom.hdir"></a>
362 <b>chart.zoom.hdir</b><br />
363             The horizontal direction of the zoom. Possible values are: <i>left</i>, <i>center</i>, <i>right</i><br /><i>Default: right</i><br /><br />
364             <a name="chart.zoom.vdir"></a>
365 <b>chart.zoom.vdir</b><br />
366             The vertical direction of the zoom. Possible values are: <i>up</i>, <i>center</i>, <i>down</i><br /><i>Default: down</i><br /><br />
367             <a name="chart.zoom.delay"></a>
368 <b>chart.zoom.delay</b><br />
369             The delay (in milliseconds) between frames.<br /><i>Default: 50</i><br /><br />
370             <a name="chart.zoom.frames"></a>
371 <b>chart.zoom.frames</b><br />
372             The number of frames in the zoom animation.<br /><i>Default: 10</i><br /><br />
373             <a name="chart.zoom.shadow"></a>
374 <b>chart.zoom.shadow</b><br />
375             Whether or not the zoomed canvas has a shadow or not.<br /><i>Default: true</i><br /><br />
376             <a name="chart.zoom.thumbnail.width"></a>
377 <b>chart.zoom.thumbnail.width</b><br />
378             When the zoom is in thumbnail mode, this is the width (in pixels) of the thumbnail.<br /><i>Default: 75</i><br /><br />
379             <a name="chart.zoom.thumbnail.height"></a>
380 <b>chart.zoom.thumbnail.height</b><br />
381             When the zoom is in thumbnail mode, this is the height (in pixels) of the thumbnail.<br /><i>Default: 75</i><br /><br />
382             <a name="chart.zoom.background"></a>
383 <b>chart.zoom.background</b><br />
384             Defaulting to true, this determines whether the zoom has a dark, semi-opaque background that covers the entire web page.<br /><i>Default: true</i><br /><br />
385 </div>
386
387     <a name="available.methods"></a>
388     <br />&nbsp;<br />
389     <h2>Methods</h2>
390
391     <b>RGraph.getSegment()</b><br /><br />
392     
393     RGraph.getSegment() makes it easy to determine which segment of the Rose chart was clicked on. It provides:
394     
395     <ul>
396         <li>Originating X coordinate</li>
397         <li>Originating Y coordinate</li>
398         <li>The radius of the segment</li>
399         <li>The starting angle (in degrees)</li>
400         <li>The ending angle (in degrees)</li>
401     </ul>
402
403     <pre class="code">
404 &lt;script&gt;
405     RGraph.Register(myGraph);
406     
407     myGraph.canvas.onclick = function (e)
408     {
409         RGraph.FixEventObject(e);
410         RGraph.Redraw();
411
412         var canvas  = e.target;
413         var context = canvas.getContext('2d');
414         var obj     = canvas.__object__;
415         <span style="color: green">var segment = RGraph.getSegment(e);</span>
416         
417         if (segment) {
418             context.fillStyle = 'rgba(255,255,255,0.5)';
419             context.beginPath();
420                 
421                 // Angles are provided in degrees, so convert them to radians
422                 segment[3] /= 57.29;
423                 segment[4] /= 57.29;
424             
425                 context.moveTo(segment[0], segment[1]);
426                 context.arc(segment[0], segment[1], segment[2], segment[3], segment[4], 0);
427             context.stroke();
428             context.fill();
429             
430             e.stopPropagation();
431         }
432     }
433     
434     window.onclick = function (e)
435     {
436         RGraph.Redraw();
437     }
438 &lt;/script&gt;
439 </pre>
440
441 </body>
442 </html>