Original Webalizer PNG graphs became quite small when viewed on a high-resolution screen, which is pretty much any screen nowadays and are not very easy to work on due to a lack of a layout engine. Poor antialiasing in the underlying GD library does not help quality either. Being able to produce better graphs was one of the reasons I added XML reports to Stone Steps Webalizer. Last couple of months I was mostly working on making sure that it's easy to use XSL templates that will be included into the Stone Steps Webalizer package with various Flash charting packages.
Open Flash Chart
I also had to sacrifice color-coded weekends in the X axis because OFC didn't support styling individual axis labels. Other styling problems started to pile up as I went along, such as not being able to set some of the font styles in the chart title.
The worse one was the Country chart, as pie labels started to overlap the chart title and each other when the number of displayed countries was over five or six.
In order to work around this problem, I had to remove the labels and leave only tooltips, which made the chart look incomplete.
A couple of weeks ago I came across of XML/SWF Charts and was quite impressed by the quality of the output. Needless to say, I immediately started to write another XSL template to make use of XML/SWF charts. However, my excitement quite quickly evaporated, as I hit multiple implementation deficiencies.
For example, there was no secondary axis option, so I could not combine in hits, pages, files and visits on a single chart, as I could with the OFC charts and just about every other charting package there is. There was no option to combine multiple plot areas on the same chart, although this particular option seems to be quite advanced in the world of Flash charting and few packages offer it. Well, I have to mention that there is an option of including a Flash chart within a Flash chart, but I don't consider this as a particularly good approach.
The biggest problem I found, however, was the bizarre coordinate system. XML/SWF reference pages describe the top left corner as the origin. However, when I placed the plotting area at this location, it turned out to be about a hundred pixels shifted to the right. I tried a few other Flash scaling/origin options and various manual adjustments, but ended up with code sprinkled with various offsets, which looked fairly ugly and I decided to put XML/SWF charts away for now.
Just like XML/SWF Charts, amCharts produced graphs that looked very professional and offered more ways to control them than any other package I reviewed. One of the awesome features I came across in amCharts was that I could identify every category value (X-axis), so that only existing data values with corresponding value IDs would be rendered. This one option could have saved me a couple of days worth of XSL of work, if I chose amCharts as the default package.
Eventually, however, I stumbled upon a strange problem - column chart did not support multiple plotting areas, like the stock chart did and did not support the secondary axis, which I intended to use for hosts and visits. Line chart did support secondary axis, but refused to render columns, outputting them as lines. The stock chart, which offered everything I was looking for was specialized for stocks and expected dates for the category axis.
I tried using area chart instead of columns and the graph looked not bad, so I decided to keep it this way. After a few hours, when I almost finished daily and hourly graphs, I learned that it's possible to draw a vertical line from every point in a line graph, so I could actually mimic a column chart with those vertical lines. A hack is a hack, though, and there were only limited ways to control those vertical lines (i.e. columns overlap, outline color, etc), so I kept the area chart.
The pie chart, on the other hand, looked great and I could even tilt it to make it look similar to the original country graph pie chart, but it turned out that tilting the chart works only when the first slice starts at 90°, not 0°, which is what I wanted. After some experimentation, I used a gradient to make the country chart look 3D, but keep the first slice at 0°.
The only thing that remained unresolved was the huge link to the amCharts website in the top left corner. I didn't want to move the title or make the chart wider to avoid the overlap and decided to leave it as is for now.
After some consideration, I decided to keep both, Open Flash Chart and amChart, linked into the XSL report templates, so that one of them or the the old-style PNG graphs could be selected in the XSL configuration. Both charting packages generate usable graphs and each will serve as a sample in case somebody would like to use some other charting package.