Skip to content
This repository

Attractive JavaScript charts for jQuery

branch: master

Merge pull request #1284 from dnschnur/multi-axis-min-fix

Allow x2axis/y2axis with no min/max to auto-scale.
latest commit 51aea3463b
David Schnur dnschnur authored
Octocat-spinner-32 examples Fix zoom to selection box when using jQuery 1.9+.
Octocat-spinner-32 .gitignore Add basic Travis CI setup with jshint test.
Octocat-spinner-32 .travis.yml Fix travis config. YAML forbids tabs.
Octocat-spinner-32 Fix line wrapping and grammar.
Octocat-spinner-32 Mandate jsDoc comments for file/function headers.
Octocat-spinner-32 Cleanup and markup standardization.
Octocat-spinner-32 LICENSE.txt Update license
Octocat-spinner-32 Makefile Add basic Travis CI setup with jshint test.
Octocat-spinner-32 Updated version number to 0.8.3-alpha.
Octocat-spinner-32 fix example (syntax error and indenting)
Octocat-spinner-32 Change [olson] to http link
Octocat-spinner-32 component.json Updated version number to 0.8.3-alpha.
Octocat-spinner-32 excanvas.js Update excanvas and remove previous eventholder work-around to fix ho…
Octocat-spinner-32 excanvas.min.js Update excanvas and remove previous eventholder work-around to fix ho…
Octocat-spinner-32 flot.jquery.json Updated version number to 0.8.3-alpha.
Octocat-spinner-32 jquery.colorhelpers.js Slight cleanup / optimization for #1084.
Octocat-spinner-32 jquery.flot.canvas.js Allow the same text in multiple locations.
Octocat-spinner-32 jquery.flot.categories.js Update js files
Octocat-spinner-32 jquery.flot.crosshair.js Use floor instead of round for better sub-pixel accuracy.
Octocat-spinner-32 jquery.flot.errorbars.js Update js files
Octocat-spinner-32 jquery.flot.fillbetween.js Update js files
Octocat-spinner-32 jquery.flot.image.js Update js files
Octocat-spinner-32 jquery.flot.js Merge pull request #1284 from dnschnur/multi-axis-min-fix
Octocat-spinner-32 jquery.flot.navigate.js Proposed fix for issue 1204: only enforce zoom limits in the directio…
Octocat-spinner-32 jquery.flot.pie.js Add a comment explaining why extend is being used
Octocat-spinner-32 jquery.flot.resize.js Update inline jquery-resize to the latest version.
Octocat-spinner-32 jquery.flot.selection.js Update js files
Octocat-spinner-32 jquery.flot.stack.js Update js files
Octocat-spinner-32 jquery.flot.symbol.js Update js files
Octocat-spinner-32 jquery.flot.threshold.js Update js files
Octocat-spinner-32 jquery.flot.time.js made dateGenerator accessible from external plugin, this is useful fo…
Octocat-spinner-32 jquery.js Updated the bundled jQuery to version 1.8.3.
Octocat-spinner-32 package.json Updated version number to 0.8.3-alpha.

Flot Build status


Flot is a Javascript plotting library for jQuery.
Read more at the website:

Take a look at the the examples in examples/index.html; they should give a good impression of what Flot can do, and the source code of the examples is probably the fastest way to learn how to use Flot.


Just include the Javascript file after you've included jQuery.

Generally, all browsers that support the HTML5 canvas tag are supported.

For support for Internet Explorer < 9, you can use Excanvas, a canvas emulator; this is used in the examples bundled with Flot. You just include the excanvas script like this:

<!--[if lte IE 8]><script language="javascript" type="text/javascript" src="excanvas.min.js"></script><![endif]-->

If it's not working on your development IE 6.0, check that it has support for VML which Excanvas is relying on. It appears that some stripped down versions used for test environments on virtual machines lack the VML support.

You can also try using Flashcanvas, which uses Flash to do the emulation. Although Flash can be a bit slower to load than VML, if you've got a lot of points, the Flash version can be much faster overall. Flot contains some wrapper code for activating Excanvas which Flashcanvas is compatible with.

You need at least jQuery 1.2.6, but try at least 1.3.2 for interactive charts because of performance improvements in event handling.

Basic usage

Create a placeholder div to put the graph in:

<div id="placeholder"></div>

You need to set the width and height of this div, otherwise the plot library doesn't know how to scale the graph. You can do it inline like this:

<div id="placeholder" style="width:600px;height:300px"></div>

You can also do it with an external stylesheet. Make sure that the placeholder isn't within something with a display:none CSS property - in that case, Flot has trouble measuring label dimensions which results in garbled looks and might have trouble measuring the placeholder dimensions which is fatal (it'll throw an exception).

Then when the div is ready in the DOM, which is usually on document ready, run the plot function:

$.plot($("#placeholder"), data, options);

Here, data is an array of data series and options is an object with settings if you want to customize the plot. Take a look at the examples for some ideas of what to put in or look at the API reference. Here's a quick example that'll draw a line from (0, 0) to (1, 1):

$.plot($("#placeholder"), [ [[0, 0], [1, 1]] ], { yaxis: { max: 1 } });

The plot function immediately draws the chart and then returns a plot object with a couple of methods.

What's with the name?

First: it's pronounced with a short o, like "plot". Not like "flawed".

So "Flot" rhymes with "plot".

And if you look up "flot" in a Danish-to-English dictionary, some of the words that come up are "good-looking", "attractive", "stylish", "smart", "impressive", "extravagant". One of the main goals with Flot is pretty looks.

Notes about the examples

In order to have a useful, functional example of time-series plots using time zones, date.js from timezone-js (released under the Apache 2.0 license) and the Olson time zone database (released to the public domain) have been included in the examples directory. They are used in examples/axes-time-zones/index.html.

Something went wrong with that request. Please try again.