Home | History | Annotate | Download | only in flot
      1 # Flot [![Build status](https://travis-ci.org/flot/flot.png)](https://travis-ci.org/flot/flot)
      2 
      3 ## About ##
      4 
      5 Flot is a Javascript plotting library for jQuery.  
      6 Read more at the website: <http://www.flotcharts.org/>
      7 
      8 Take a look at the the examples in examples/index.html; they should give a good
      9 impression of what Flot can do, and the source code of the examples is probably
     10 the fastest way to learn how to use Flot.
     11 
     12 
     13 ## Installation ##
     14 
     15 Just include the Javascript file after you've included jQuery.
     16 
     17 Generally, all browsers that support the HTML5 canvas tag are
     18 supported.
     19 
     20 For support for Internet Explorer < 9, you can use [Excanvas]
     21 [excanvas], a canvas emulator; this is used in the examples bundled
     22 with Flot. You just include the excanvas script like this:
     23 
     24 ```html
     25 <!--[if lte IE 8]><script language="javascript" type="text/javascript" src="excanvas.min.js"></script><![endif]-->
     26 ```
     27 
     28 If it's not working on your development IE 6.0, check that it has
     29 support for VML which Excanvas is relying on. It appears that some
     30 stripped down versions used for test environments on virtual machines
     31 lack the VML support.
     32 
     33 You can also try using [Flashcanvas][flashcanvas], which uses Flash to
     34 do the emulation. Although Flash can be a bit slower to load than VML,
     35 if you've got a lot of points, the Flash version can be much faster
     36 overall. Flot contains some wrapper code for activating Excanvas which
     37 Flashcanvas is compatible with.
     38 
     39 You need at least jQuery 1.2.6, but try at least 1.3.2 for interactive
     40 charts because of performance improvements in event handling.
     41 
     42 
     43 ## Basic usage ##
     44 
     45 Create a placeholder div to put the graph in:
     46 
     47 ```html
     48 <div id="placeholder"></div>
     49 ```
     50 
     51 You need to set the width and height of this div, otherwise the plot
     52 library doesn't know how to scale the graph. You can do it inline like
     53 this:
     54 
     55 ```html
     56 <div id="placeholder" style="width:600px;height:300px"></div>
     57 ```
     58 
     59 You can also do it with an external stylesheet. Make sure that the
     60 placeholder isn't within something with a display:none CSS property -
     61 in that case, Flot has trouble measuring label dimensions which
     62 results in garbled looks and might have trouble measuring the
     63 placeholder dimensions which is fatal (it'll throw an exception).
     64 
     65 Then when the div is ready in the DOM, which is usually on document
     66 ready, run the plot function:
     67 
     68 ```js
     69 $.plot($("#placeholder"), data, options);
     70 ```
     71 
     72 Here, data is an array of data series and options is an object with
     73 settings if you want to customize the plot. Take a look at the
     74 examples for some ideas of what to put in or look at the 
     75 [API reference](API.md). Here's a quick example that'll draw a line 
     76 from (0, 0) to (1, 1):
     77 
     78 ```js
     79 $.plot($("#placeholder"), [ [[0, 0], [1, 1]] ], { yaxis: { max: 1 } });
     80 ```
     81 
     82 The plot function immediately draws the chart and then returns a plot
     83 object with a couple of methods.
     84 
     85 
     86 ## What's with the name? ##
     87 
     88 First: it's pronounced with a short o, like "plot". Not like "flawed".
     89 
     90 So "Flot" rhymes with "plot".
     91 
     92 And if you look up "flot" in a Danish-to-English dictionary, some of
     93 the words that come up are "good-looking", "attractive", "stylish",
     94 "smart", "impressive", "extravagant". One of the main goals with Flot
     95 is pretty looks.
     96 
     97 
     98 ## Notes about the examples ##
     99 
    100 In order to have a useful, functional example of time-series plots using time
    101 zones, date.js from [timezone-js][timezone-js] (released under the Apache 2.0
    102 license) and the [Olson][olson] time zone database (released to the public
    103 domain) have been included in the examples directory.  They are used in
    104 examples/axes-time-zones/index.html.
    105 
    106 
    107 [excanvas]: http://code.google.com/p/explorercanvas/
    108 [flashcanvas]: http://code.google.com/p/flashcanvas/
    109 [timezone-js]: https://github.com/mde/timezone-js
    110 [olson]: http://ftp.iana.org/time-zones
    111