Thursday, April 12, 2012

JavaScript Charts API: Flot jQuery Plugin OR Google Visualization?

I am looking for a charts library to be displayed on a website. I will use intensively this library (for area, line and bar charts mainly), so I prefer to secure my choice before starting implementing.

The list of website chart libraries that I have initially considered are:

However after some researches on this forum and investigations on the web, I have reduced my candidate list to these two libraries:

  1. Flot jQuery plugin

  2. Google Visualization

Which one do you advise me to use and why (if you have worked with one or two of them, please tell me your feedback)?

How do they compare one to each other regarding ease of use, performance and features?

Thank you

EDIT: Based-Flash Chart libraries were not eligible with my constraints

Source: Tips4all


  1. I will try to answer my own question after some several tries and researches about these 2 visualization libraries, here are my own list of pros for each solution :

    Flot Pros

    jQuery plugin : if you are familiar with jQuery (or if your apps is integrated with jQuery), it seems natural to use Flot
    Offline visualization : you can test or have it installed into an internal website. Google Visu can only work if you have acces to the google website !!
    Customization : this is basically a JavaScript file so if you are good at JS coding, you can customize your charts as your convenience. Also the Flot plugin system allows you better modularity

    Google Visualization Pros

    Documentation : awesome ! Examples for each type of graphs are available in the Google site
    Easy to use : Really. Easier than Flot (that requires to somehow customize the div container)
    Powerful : you have many sorts of graphs and features (zooming, interactivity,...)
    Java and Python API : it can helps a lot for constructing the Data Table (at least for me, I can use the Java API)

    Bottom Line

    If you are familiar with jQuery, go with Flot. If you need for some reasons to see your charts offline, go with Flot. If you want full control, go with Flot.

    If you don't recognize yourself above, go with Google Visu. It's easy to learn and implement, very well documented and extremely powerful.

  2. The piwik project uses the Open Flash Chart (not on your list).

    It's easy to use, has plenty of working examples very user friendly.

  3. I am a user of Flot, and a big fan. I use it in a Grails application, and use stacked bar, line, and pie charts, including time-series and a bunch of interactive capabilities (i.e. turn off / on series with checkboxes, etc).

    I found it to be a pleasure to work with overall, and feel the API is quite well developed (I saw that a bunch of other JS charting libraries adopted the API, so you'll even have some flexibility to move to another kit in the future). From looking at the google API just now for a minute, I think I like flot's better (although google may have ability to pass in a series as well, didn't see it from samples).

    They just came out with a new version a few weeks ago (0.6), that supports plugins, which I expect will stimulate more innovation.

    So I think part of this depends on other technologies you are planning to use. It seems like Visualization is integrated with GWT, so if you are thinking of using that, Visualization is the way to go. On the other hand, if you are thinking of using JQuery for AJAX, then Flot might be a more natural fit.

    When I was making my decision to use this, it seems like Google didn't have interactive visualizations, only google charts (images), which is one of the reasons I went with Flot.

  4. Not in your list, but very impressive: ExtJS 4.0 charts

  5. Not in your list, but I would recommend you have a look at Highcharts
    Highcharts is SVG, and as such, it is much more dynamic than Flot, you can restyle graphs with CSS, attach events, perform animations, etc...
    It is also compatible with IE6 and it works server-side (thx to Batik)
    I'm currently building a graph-intensive application, and chose Highcharts after lots of benchmarkings. I don't regret my choice.