By Tim Dexter on Dec 19, 2007
I have been exchanging mails with a colleague in the field regarding the 'smoothness' of our charts. By default in our PDF outputs we generate SVG chart output to get the best quality output. His customer was still not happy - he sent me a copy of their chart:
and a snap shot of their problematic output.
Now I got to see the issue - they are already using the SVG output but at 1600% resolution you can see that the chart lines are actually made up of individual smaller lines. Im not SVG expert but I assume this is the easiest way to implement a chart - using an arc to get the curves smoother would take alot of time, working out which way the curve ought to go.
Im also assuming that the customers printers are of such a resolution that the quality of the print outs makes the chart all but unreadable.
Its a limitation of the BIBeans charting engine that the chart is not smoother - in the engine's defense there are 100s of data points in this chart. Looks like share price or similar chart with so many points. This got me thinking about the finance charts you get to see on Yahoo and Google - the newer charts are very cool and very Flash like (more on that another day) - both sites a feature a 'time slider' allowing you to move a time slice across the total stock chart, heres the Oracle chart on Yahoo - check out the Time range widget bottom right corner.
If you play with the slider you'll hopefully notice that the charting engine appears to have some algorithm to reduce the numer of data points as the range is extended, effectively 'smoothing' the chart. If not, check out the video, focus on the chart as the slider moves, you'll see the chart suddenly 'smooth' as the data points are effectively reduced.
Now this would be a fantastic enhancement to the BIBeans charting engine - not there yet thou. An area I'll try to investigate or even better you can investigate if you have nothing better to do over the holidays is to come up with some algorithm in the template or an extension to check how many data points there are and reduce them if necessary to give the chart a smoother look . Not going to be easy but might prove a very useful feature in lieu of the charting engine enhancement.