initial commit
[home-automation.git] / RGraph / examples / donut.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     <title>RGraph: HTML5 canvas graph library - donut chart</title>
22     
23     <meta name="keywords" content="rgraph html5 canvas example donut chart" />
24     <meta name="description" content="RGraph: Donut chart examples" />
25
26     <link rel="stylesheet" href="../css/website.css" type="text/css" media="screen" />
27     <link rel="icon" type="image/png" href="../images/favicon.png">
28
29     <script src="../libraries/RGraph.common.core.js" ></script>
30     <script src="../libraries/RGraph.common.context.js" ></script>
31     <script src="../libraries/RGraph.common.annotate.js" ></script>
32     <script src="../libraries/RGraph.common.tooltips.js" ></script>
33     <script src="../libraries/RGraph.common.zoom.js" ></script>
34     <script src="../libraries/RGraph.pie.js" ></script>
35     <!--[if IE 8]><script src="../excanvas/excanvas.compressed.js"></script><![endif]-->
36     
37     <script>
38         window.onload = function ()
39         {
40             var donut = new RGraph.Pie('donut1', [41,37,16,3,3], [20,5,60,7,3], [17,3,68,6,3]);
41             donut.Set('chart.variant', 'donut');
42             donut.Set('chart.linewidth', 5);
43             donut.Set('chart.strokestyle', 'white');
44             donut.Set('chart.gutter', 45);
45             donut.Set('chart.title', "Browser share (zoom)");
46             
47             donut.Set('chart.key', ['MSIE 7', 'MSIE 6', 'Firefox', 'Safari', 'Other']);
48             donut.Set('chart.key.shadow', true);
49             donut.Set('chart.key.shadow.offsetx', 3);
50             donut.Set('chart.key.shadow.offsety', 3);
51             donut.Set('chart.key.shadow.blur', 3);
52             donut.Set('chart.key.shadow.color', 'gray');
53             donut.Set('chart.key.position', 'graph');
54             donut.Set('chart.align', 'left');
55             
56             if (!RGraph.isIE8()) {
57                 donut.Set('chart.zoom.mode', 'area');
58             }
59
60             donut.Draw();
61
62
63             function getGradient(obj, color)
64             {
65                 var gradient = obj.context.createRadialGradient(obj.canvas.width / 2, obj.canvas.height / 2, 0, obj.canvas.width / 2, obj.canvas.height / 2, 200);
66                 gradient.addColorStop(0, 'black');
67                 gradient.addColorStop(0.5, color);
68                 gradient.addColorStop(1, 'black');
69                 
70                 return RGraph.isIE8() ? color : gradient;
71             }
72
73             var donut2 = new RGraph.Pie('donut2', [8,6,5,3,8,9,9,4]);
74             
75             // Create the gradients
76             var gradient = getGradient(donut2, 'red');
77             var gradient2 = getGradient(donut2, 'green');
78             var gradient3 = getGradient(donut2, 'pink');
79             var gradient4 = getGradient(donut2, 'yellow');
80             var gradient5 = getGradient(donut2, 'grey');
81             var gradient6 = getGradient(donut2, 'cyan');
82             var gradient7 = getGradient(donut2, 'red');
83             var gradient8 = getGradient(donut2, '#ddd');
84             var gradient9 = getGradient(donut2, 'blue');
85
86             donut2.Set('chart.variant', 'donut');
87             donut2.Set('chart.labels', ['Flipper', 'Harry', 'Ben', 'Richard', 'Keith', 'Ben', 'George', 'Barry']);
88             donut2.Set('chart.title', "Sales figures for week 43");
89             donut2.Set('chart.gutter', 35);
90             donut2.Set('chart.strokestyle', 'rgba(0,0,0,0)');
91             donut2.Set('chart.colors', [gradient, gradient2, gradient3, gradient4, gradient5, gradient6, gradient7, gradient8, gradient9]);
92             donut2.Draw();
93
94             var donut3 = new RGraph.Pie('donut3', [41,37,16,3,3]);
95             donut3.Set('chart.labels', ['MISE 7', 'MSIE 6', 'Firefox', 'Safari', 'Other']);
96             donut3.Set('chart.strokestyle', 'white');
97             donut3.Set('chart.linewidth', 5);
98             donut3.Set('chart.title', "Browser market share (tooltips)");
99             donut3.Set('chart.tooltips', ['MISE 7', 'MSIE 6', 'Firefox', 'Safari', 'Other']);
100             donut3.Set('chart.variant', 'donut');
101             donut3.Draw();
102
103             var donut4 = new RGraph.Pie('donut4', [5,4,3,5,2,1], [3,1,1,2,1,1]);
104             donut4.Set('chart.variant','donut');
105             donut4.Set('chart.linewidth', 5);
106             donut4.Set('chart.strokestyle', 'white');
107             donut4.Set('chart.linewidth', 5);
108             donut4.Set('chart.labels', ['Bob', 'Charles', 'Fred', 'Julian', 'Mark', 'Gary']);
109             donut4.Draw();
110         }
111     </script>
112 </head>
113 <body>
114
115     <!-- Social networking buttons -->
116     
117     <script>
118         function HideTwitterDIV ()
119         {
120             document.getElementById("twitter_div").style.opacity = 0;
121             document.getElementById("twitter_div").style.display = 'none';
122         }
123
124
125         function ShowTwitterDIV (e)
126         {
127             var e   = RGraph.FixEventObject(document.all ? event : e);
128             var div = document.getElementById("twitter_div");
129             var img = document.getElementById("twitter_icon");
130
131             div.style.display = 'block';
132             div.style.left    = (RGraph.getCanvasXY(img)[0] + img.offsetWidth - div.offsetWidth + 110) + 'px';
133             div.style.top     = (RGraph.getCanvasXY(img)[1] - 1) + 'px';
134
135             /**
136             * Fade it in
137             */
138             setTimeout('document.getElementById("twitter_div").style.opacity = 0.2;', 25);
139             setTimeout('document.getElementById("twitter_div").style.opacity = 0.4;', 50);
140             setTimeout('document.getElementById("twitter_div").style.opacity = 0.6;', 100);
141             setTimeout('document.getElementById("twitter_div").style.opacity = 0.8;', 125);
142             setTimeout('document.getElementById("twitter_div").style.opacity = 1.0;', 150);
143
144             e.stopPropagation();
145
146             return false;
147         }
148
149         /**
150         * This code installs the event handler that hides the Twitter DIV
151         */
152         if (RGraph.isIE8()) {
153              window.attachEvent('onload', function () {document.body.attachEvent('onclick', HideTwitterDIV);});
154         } else {
155             window.addEventListener('click', HideTwitterDIV, false);
156         }
157     </script>
158
159     <!-- The twitter DIV --> 
160     <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;"> 
161         <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>
162         <a href="http://twitter.com/_rgraph" style="text-decoration: none" rel="nofollow" target="_blank">Follow for HTML5 news</a> 
163     </div>
164
165     <div id="social_icons" class="warning" style="top: 0; left: 5px; position: absolute">
166         <script>
167             // Opera fix
168             if (navigator.userAgent.indexOf('Opera') == -1) {
169               document.getElementById("social_icons").style.position = 'fixed';
170               document.getElementById("twitter_div").style.position = 'fixed';
171     
172             }
173         </script>
174     
175         <b style="display: inline-block; position: relative; top: 1px">Bookmark and share:</b>
176     
177     
178             <div id="social">
179                 <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">
180                     <img src="../images/delicious.png" alt="Bookmark with delicious" width="22" height="22" border="0" align="absmiddle" /> 
181                 </a> 
182      
183                 <a href="" target="_blank" onmouseover="if (document.getElementById('twitter_div').style.display == 'none') ShowTwitterDIV(event);" onclick="event.stopPropagation(); event.cancelBubble = true; return false">
184                     <img src="../images/twitter.png" id="twitter_icon" alt="tweet this site" width="22" height="22" border="0" align="absmiddle" />
185                 </a>
186     
187     
188 <!--
189                 <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">
190                     <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"/>
191                 </a>
192     
193     
194                 <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">
195                     <img src="../images/facebook.png" width="22" height="22" alt="Post to Facebook" align="absmiddle" style="position: relative; top: -2px; border: 0" border="0"/>
196                 </a>
197     
198                 <a href="mailto:share@friendfeed.com" title="Share on FriendFeed"> 
199                     <img src="../images/friendfeed.png" width="22" height="22" alt="Share on FriendFeed" border="0" align="absmiddle" /> 
200                 </a>
201     
202                 <a href="http://www.stumbleupon.com/submit?url=http://www.rgraph.net" target="_blank" title="Share on StumbleUpon" >
203                     <img src="../images/stumble.png" alt="Stumble! this site" width="22" height="22" border="0" align="absmiddle" /> 
204                 </a>
205 -->
206             </div>
207     </div>
208     <!-- /Social networking buttons -->
209
210 <div id="breadcrumb">
211     <a href="../index.html">RGraph: HTML5 canvas graph library</a>
212     >
213     <a href="./index.html">Examples</a>
214     >
215     Donut chart
216 </div>
217
218 <h1>RGraph: HTML5 canvas graph library - Donut chart</h1>
219
220     <script>
221         if (RGraph.isIE8()) {
222             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>');
223         }
224     </script>
225
226     <div>
227
228         <p>
229             Formerly the Donut chart was a separate class, though now it's a variant of the Pie chart. This means smaller downloads and
230             a much simpler implementation. Essentially it's a Pie chart with a big hole in the middle. If you want to compare multiple
231             datasets you will probably be better off with something like a stacked or grouped bar chart, as you will be able to make
232             comparisons easier.
233         </p>
234
235         <div>
236             <ul>
237                 <li><a href="../docs/pie.html">Pie chart API documentation</a></li>
238             </ul>
239         </div>
240
241         <div style="width: 950px">
242             <div style="width: 450px; float: left">
243                 <canvas id="donut1" width="450" height="350">[No canvas support]</canvas>
244                 <canvas id="donut2" width="450" height="350">[No canvas support]</canvas>
245             </div>
246             
247             <div style="width: 450px; float: right">
248                 <canvas id="donut3" width="450" height="350">[No canvas support]</canvas>
249                 <canvas id="donut4" width="450" height="350">[No canvas support]</canvas>
250             </div>
251         </div>
252     </div>
253
254
255 </body>
256 </html>