Bluff is a JavaScript port of the Gruff graphing library for Ruby. It is designed to support all the features of Gruff with minimal dependencies; the only third-party scripts you need to run it are a copy of JS.Class (2.6kB gzipped) and a copy of Google’s ExCanvas to support canvas in Internet Explorer. Both these scripts are supplied with the Bluff download. Bluff itself is around 11kB gzipped.

To draw a graph, you create a new Bluff graph object using the id of a canvas element on the page, set some options, add the data and labels, then tell the graph to draw. A basic example:

<canvas id="example" width="400" height="300"></canvas> <script type="text/javascript"> var g = new Bluff.Line('example', '400x300'); g.title = 'My Graph'; g.tooltips = true; g.theme_37signals(); g.data("Apples", [1, 2, 3, 4, 4, 3]); g.data("Oranges", [4, 8, 7, 9, 8, 9]); g.data("Watermelon", [2, 3, 1, 5, 6, 8]); g.data("Peaches", [9, 9, 10, 8, 7, 9]); g.labels = {0: '2003', 2: '2004', 4: '2005'}; g.draw(); </script>