1 <?php ob_start('ob_gzhandler') ?>
5 <meta http-equiv="X-UA-Compatible" content="chrome=1">
9 * o------------------------------------------------------------------------------o
10 * | This file is part of the RGraph package - you can learn more at: |
12 * | http://www.rgraph.net |
14 * | This package is licensed under the RGraph license. For all kinds of business |
15 * | purposes there is a small one-time licensing fee to pay and for non |
16 * | commercial purposes it is free to use. You can read the full license here: |
18 * | http://www.rgraph.net/LICENSE.txt |
19 * o------------------------------------------------------------------------------o
22 <title>RGraph: HTML5 canvas graph library - bar chart</title>
24 <meta name="keywords" content="rgraph html5 canvas example bar chart" />
25 <meta name="description" content="RGraph: Bar chart 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.annotate.js" ></script>
32 <script src="../libraries/RGraph.common.context.js" ></script>
34 <script src="../libraries/RGraph.common.tooltips.js" ></script>
35 <script src="../libraries/RGraph.common.resizing.js" ></script>
36 <script src="../libraries/RGraph.bar.js" ></script>
37 <!--[if IE 8]><script src="../excanvas/excanvas.compressed.js"></script><![endif]-->
41 * These are the callback functions for the context menu
45 alert('Menu item 1 selected!');
50 alert('Menu item 2 selected!');
55 * The onload function creates the graph
57 window.onload = function ()
59 var bar = new RGraph.Bar('bar1', [1.2, 1.3, 1.4, 1.5,6,1.9,2,2.1,2.5]);
60 bar.Set('chart.units.pre', '$');
61 bar.Set('chart.units.post', 'k');
62 bar.Set('chart.title', 'A sketch bar chart (context, resizable)');
63 bar.Set('chart.gutter', 35);
64 bar.Set('chart.colors', ['rgb(255,0,0)']);
65 bar.Set('chart.labels', ['John', 'Barry', 'Rich', 'Craig', 'Tom', 'Frank', 'Helen', 'Joyce', 'Fred'])
66 bar.Set('chart.background.grid.hsize', 20);
67 bar.Set('chart.background.grid.vsize', 20);
68 bar.Set('chart.background.barcolor1', 'white');
69 bar.Set('chart.background.barcolor2', 'white');
70 bar.Set('chart.text.angle', 30);
71 bar.Set('chart.contextmenu', [['A test!', function () {}], ['Get PNG', RGraph.showPNG]]);
72 bar.Set('chart.labels.above', true);
74 if (!RGraph.isIE8()) {
75 bar.Set('chart.resizable', true);
78 bar.Set('chart.variant', 'sketch');
79 bar.Set('chart.linewidth', 2);
80 bar.Set('chart.background.grid.autofit', true);
81 bar.Set('chart.ylabels.count', 10);
83 RGraph.Clear(bar.canvas, 'white');
88 var bar2 = new RGraph.Bar('bar2', [140, 150, 160, 150, 120, 150, 160, 140, 120, 160]);
89 bar2.Set('chart.background.barcolor1', 'white');
90 bar2.Set('chart.background.barcolor2', 'white');
91 bar2.Set('chart.title', 'Sales last quarter (tooltips)');
92 bar2.Set('chart.title.vpos', 0.6);
93 bar2.Set('chart.labels', ['Fred', 'Rich', 'Alex','John','Nick', 'Doug', 'Jaz', 'Pat', 'Baz', 'Bob']);
94 bar2.Set('chart.text.angle', 45);
95 bar2.Set('chart.gutter', 35);
96 bar2.Set('chart.shadow', true);
97 bar2.Set('chart.shadow.blur', 15);
98 bar2.Set('chart.shadow.color', '#ffa0a0');
99 bar2.Set('chart.shadow.offsetx', 0);
100 bar2.Set('chart.shadow.offsety', 0);
101 bar2.Set('chart.colors', ['#FF6060']);
102 bar2.Set('chart.key.position', 'gutter');
103 bar2.Set('chart.text.size', 10);
104 bar2.Set('chart.text.font', 'Georgia');
105 bar2.Set('chart.text.angle', 45);
106 bar2.Set('chart.grouping', 'stacked');
108 if (!RGraph.isIE8()) {
109 bar2.Set('chart.tooltips', ['Fred', 'Rich', 'Alex','John','Nick', 'Doug', 'Jaz', 'Pat', 'Baz', 'Bob']);
114 var bar4 = new RGraph.Bar('bar4', [
116 [0.000034, 0.000057],
117 [0.000056, 0.000062],
118 [0.000055, 0.000045],
119 [0.000036, 0.000012],
120 [0.000044, 0.000056],
121 [0.000051, 0.000066],
122 [0.000068, 0.000088]]);
123 bar4.Set('chart.title', 'A grouped bar chart (small values)');
124 bar4.Set('chart.background.barcolor1', 'white');
125 bar4.Set('chart.background.barcolor2', 'white');
126 bar4.Set('chart.labels', ['1st', '2nd', '3rd', '4th', '5th', '6th', '7th', '8th']);
127 bar4.Set('chart.key', ['John', 'Bob']);
128 bar4.Set('chart.key.position', 'graph');
129 bar4.Set('chart.key.shadow', true);
130 bar4.Set('chart.key.background', 'rgb(255,255,255)');
131 bar4.Set('chart.colors', ['#77f', '#7f7']);
132 bar4.Set('chart.shadow', true);
133 bar4.Set('chart.shadow.offsety', -3);
134 bar4.Set('chart.shadow.color', '#aaa');
135 bar4.Set('chart.yaxispos', 'right');
136 bar4.Set('chart.labels.ingraph', [9,'The lowest']);
137 bar4.Set('chart.strokestyle', 'rgba(0,0,0,0)');
138 bar4.context.translate(-20,0);
141 var bar5 = new RGraph.Bar('bar5', [[30,20,19,21], [23,25, 27, 30], [30,25,29, 32], [27,28,35,33], [26,18,29,30], [31,20,25,27], [39,28,28,35], [27,29,28,29], [26,23,26,27], [30,20,19,21], [30,20,19,21], [30,20,19,21]]);
142 bar5.Set('chart.units.pre', '$');
143 bar5.Set('chart.title', 'Sales in the last 8 months (tooltips)');
144 bar5.Set('chart.colors', ['red', 'yellow', 'green', 'orange']);
145 bar5.Set('chart.gutter', 40);
146 bar5.Set('chart.shadow', true);
147 bar5.Set('chart.shadow.color', '#aaa');
148 bar5.Set('chart.background.barcolor1', 'white');
149 bar5.Set('chart.background.barcolor2', 'white');
150 bar5.Set('chart.background.grid.hsize', 5);
151 bar5.Set('chart.background.grid.vsize', 5);
152 bar5.Set('chart.grouping', 'stacked');
153 bar5.Set('chart.labels', ['\r\nJan', 'Feb', '\r\nMar', 'Apr', '\r\nMay', 'Jun', '\r\nJul', 'Aug', '\r\nSep','Oct','\r\nNov','Dec']);
154 bar5.Set('chart.labels.above', true);
156 bar5.Set('chart.key', ['Richard', 'Barbara', 'Johnny', 'Frederick']);
157 bar5.Set('chart.key.background', 'rgba(255,255,255,0.7)');
158 bar5.Set('chart.key.position', 'gutter');
159 bar5.Set('chart.key.position.gutter.boxed', false);
160 bar5.Set('chart.key.position.y', bar5.Get('chart.gutter') - 15);
161 bar5.Set('chart.key.border', false);
163 bar5.Set('chart.background.grid.width', 0.3); // Decimals are permitted
164 bar5.Set('chart.text.angle', 0);
165 bar5.Set('chart.strokecolor', 'rgba(0,0,0,0)');
166 bar5.Set('chart.tooltips.event', 'onmousemove');
168 if (!RGraph.isIE8()) {
169 bar5.Set('chart.tooltips', [
170 'Richard', 'Barbara', 'Johnny', 'Frederick',
171 'Richard', 'Barbara', 'Johnny', 'Frederick',
172 'Richard', 'Barbara', 'Johnny', 'Frederick',
173 'Richard', 'Barbara', 'Johnny', 'Frederick',
174 'Richard', 'Barbara', 'Johnny', 'Frederick',
175 'Richard', 'Barbara', 'Johnny', 'Frederick',
176 'Richard', 'Barbara', 'Johnny', 'Frederick',
177 'Richard', 'Barbara', 'Johnny', 'Frederick'
188 <!-- Social networking buttons -->
191 function HideTwitterDIV ()
193 document.getElementById("twitter_div").style.opacity = 0;
194 document.getElementById("twitter_div").style.display = 'none';
198 function ShowTwitterDIV (e)
200 var e = RGraph.FixEventObject(document.all ? event : e);
201 var div = document.getElementById("twitter_div");
202 var img = document.getElementById("twitter_icon");
204 div.style.display = 'block';
205 div.style.left = (RGraph.getCanvasXY(img)[0] + img.offsetWidth - div.offsetWidth + 110) + 'px';
206 div.style.top = (RGraph.getCanvasXY(img)[1] - 1) + 'px';
211 setTimeout('document.getElementById("twitter_div").style.opacity = 0.2;', 25);
212 setTimeout('document.getElementById("twitter_div").style.opacity = 0.4;', 50);
213 setTimeout('document.getElementById("twitter_div").style.opacity = 0.6;', 100);
214 setTimeout('document.getElementById("twitter_div").style.opacity = 0.8;', 125);
215 setTimeout('document.getElementById("twitter_div").style.opacity = 1.0;', 150);
223 * This code installs the event handler that hides the Twitter DIV
225 if (RGraph.isIE8()) {
226 window.attachEvent('onload', function () {document.body.attachEvent('onclick', HideTwitterDIV);});
228 window.addEventListener('click', HideTwitterDIV, false);
232 <!-- The twitter DIV -->
233 <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;">
234 <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>
235 <a href="http://twitter.com/_rgraph" style="text-decoration: none" rel="nofollow" target="_blank">Follow for HTML5 news</a>
238 <div id="social_icons" class="warning" style="top: 0; left: 5px; position: absolute">
241 if (navigator.userAgent.indexOf('Opera') == -1) {
242 document.getElementById("social_icons").style.position = 'fixed';
243 document.getElementById("twitter_div").style.position = 'fixed';
248 <b style="display: inline-block; position: relative; top: 1px">Bookmark and share:</b>
252 <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">
253 <img src="../images/delicious.png" alt="Bookmark with delicious" width="22" height="22" border="0" align="absmiddle" />
256 <a href="" target="_blank" onmouseover="if (document.getElementById('twitter_div').style.display == 'none') ShowTwitterDIV(event);" onclick="event.stopPropagation(); event.cancelBubble = true; return false">
257 <img src="../images/twitter.png" id="twitter_icon" alt="tweet this site" width="22" height="22" border="0" align="absmiddle" />
261 <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">
262 <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"/>
266 <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">
267 <img src="../images/facebook.png" width="22" height="22" alt="Post to Facebook" align="absmiddle" style="position: relative; top: -2px; border: 0" border="0"/>
270 <a href="mailto:share@friendfeed.com" title="Share on FriendFeed">
271 <img src="../images/friendfeed.png" width="22" height="22" alt="Share on FriendFeed" border="0" align="absmiddle" />
274 <a href="http://www.stumbleupon.com/submit?url=http://www.rgraph.net" target="_blank" title="Share on StumbleUpon" >
275 <img src="../images/stumble.png" alt="Stumble! this site" width="22" height="22" border="0" align="absmiddle" />
280 <!-- /Social networking buttons -->
282 <div id="breadcrumb">
283 <a href="../index.html">RGraph: HTML5 canvas graph library</a>
285 <a href="./index.html">Examples</a>
290 <h1>RGraph: HTML5 canvas graph library - Bar chart</h1>
293 if (RGraph.isIE8()) {
294 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>');
300 The bar chart is probably one of the most widely used of charts, and also one of the most versatile. It's defined as a chart with
301 rectangular bars with lengths proportional to the values they represent. The bar chart can be used to represent two
302 or more values. With grouped and stacked bar charts, you can visualise two or more sets of data. For example two years
303 worth of sales figures. Doing this you will be able to easily see differences, for example a better year when it comes
304 to sales. You can also show negative values by having the X axis in the center, like the examples shown. If you use a
305 grouped or stacked bar chart, a key may be helpful to your users.
309 By using the tooltips feature, you can provide more detail about what a particular bar represents. The tooltips in
310 <b>RGraph</b> can contain wide range of HTML, so you can use them to show photos or movies for example.
315 <li><a href="../docs/bar.html">Bar chart API documentation</a></li>
319 <div style="width: 950px">
320 <div style="width: 450px; float: left">
321 <canvas id="bar1" width="450" height="200">[No canvas support]</canvas>
322 <canvas id="bar4" width="450" height="200" style="border: 1px dashed black">[No canvas support]</canvas>
325 <div style="width: 450px; float: right">
326 <canvas id="bar2" width="450" height="200">[No canvas support]</canvas>
327 <canvas id="bar5" width="450" height="200">[No canvas support]</canvas>