Thursday, December 27, 2007

Web Graphing

A few weeks ago Google released a graphing api. I thought I'd take a look at it since I am working on a personal project that requires statistical displays.

First, I want to say that the documentation of the api is really good. Every time I was not sure how to do something I could easily find out the answer in the documentation. Second, the graphs produced look nice. Three, pie charts were very easy to create.

That said, I found it very difficult to do anything else. While trying to render a nice line graph I ran across a few problems. Well, not problems but challenges. The first one is that the api really isn't "smart". What I mean "smart" is if you have 5 data points, but 6 points on the axis, the api doesn't adjust the points to line up with the ticks. Also, the x,y axis scale from 0 to 100 so if you are charting negatives or numbers outside that scale, your application needs to do an algorithm that figures out what data point resolves to the actual data value. Another problem is the the axis do not scale themselves to the data. This requires yet another algorithm to determine the labeling of the axis. Oh, and be sure you do the scaling before you do the charting or else everything is a mess.

So, after working with the api I started to wonder if there was anything better. After going through all the tools that cost way to much, I found a handful of charting tools that were free. So I thought I would go through them until I found one I liked. I got lucky and the first one I tried was super easy to use. The tool was very configurable, yet able to do to basic things like scaling on its own, of course this could be overridden if needed. The labeling of the graph was better as well. The tool I found was called ZedGraph.

For example I create the same line graph with both apis. Using Google's api took me about 5 hours to get it right and maybe another hour or so making the graph pretty. Using Zedgraph I did the same graph in about an hour. That includes making it pretty.

All in all I am a little disappointed in the Google offering. I think maybe my expectations were high because all the other Google tools I use(see past blog posts here ) work very well, and are easy to integrate.

This brings me to another pondering, is Google doomed to fail because of there past success? People will expect nothing but the best from Google and if future Google products are good, but not great, will people will sour on them? I will save that discussion for another day.

No comments: