Saturday, November 7, 2009

Rich Charting Options for your RIA/Webapps

I started revisiting my charting solution in jRecruiter. For this fairly basic Java web application, I have been using JFreeChart to provide basic charts (E.g. to illustrate the number of posted jobs over time).

While JFreeChart works great, and it pretty much provides all the charting features you may ever want, it has one disadvantage: It is static. Compared to all the interactive goodness that is possible with RIAs such as Flex, JFreeChart lacks the sugary icing on the top (Mouse overs, AJAX interaction, dynamic drill-down etc.). Therefore, I was investigating my options to add some richness.

Additionally, at work, I am using Google Web Toolkit (GWT) and thus wanted to get an overview about the charting capabilities I have using GWT. One of the options there is gchart. It looks okay, alas not great. What's worse, the project owner abandoned his project; see:

Another option is flot which comes along as a jQuery plugin and uses the HTML canvas tag to do charting.  There is a also a GWT wrapper for flot available called gflot.

The most interesting alternative for GWT, I came across is ofcgwt. It uses Open Flash Chart 2 under the hood and looks pretty good. You could argue that if you use Flash-based charting for your GWT app, why not just implement the entire app in Flex ;-).

On the pure Flash/Flex side, there are first of all the charting components that come with Flexbuilder. In contrast to the open-sourced Flex SDK, the charting components are not free, though. 

While, I was googling for some other options, I saw Axiis - Simply beautiful! Yet, another option is IBM ILOG Elixir, which is free for free sites. They have a very nice compilation of examples:

On a low level, you also may want to look at Degrafa (Even if it is just for the gorgeous examples). You can find one interesting charting example at this blog: Nike+ graph using Degrafa/Flex 3.

Lastly, if you don't mind spending some money, you may also look at FusionCharts. At one of my prior engagements we used used in very successfully in a Struts2-based web application. Fusion Charts also comes along in a flavor for Flex - see the samples. There is also a Google Code hosted GWT wrapper available.

This, concludes my little 30k-feet overview/list of 'Rich' charting options. If I missed a good one, please leave a comment!

1 comment:

A said...

very interesting post!
I guess you could also add the Google Visualization APIs. It's still a bit static, but I haven't seen anyone offering something similar to the Google Map Visualization.