Its been a few days since I posted. In case you were wondering what I was up to – yours truly was busy coding a program to create treemaps in Excel. Treemaps are interesting creatures. You can pack a few thousand data points in a single treemap and utilize just about the same space as any of the traditional charts. The term ‘treemap’, as we see it being used nowadays, actually refers to the inward growing members of the treemap family (which have the advantage in that they use a finite amount of space and grow inwards rather than outwards, first conceptualized by Ben Shneiderman). The other set of treemaps are the traditional ‘tree-root’ shaped charts – growing from a parent node and outwards.
Coming back to the topic. So over the past few weekends I was busy developing an add-in for excel that one could use to create treemaps in excel. I pretty much finished testing yesterday and was quite satisfied with the results. I again spent a few hours yesterday night to rerun through the code and cut down the rendering time by about 23%. A couple of UDF’s and code optimization elsewhere helped improve performance. The program as it stands now, can plot reasonably large treemaps – in most cases the limitations are only those imposed by the version of the Excel in use and processing power available at hand. The only limitation that I ran into was with having more than 32,500 unique items at any one level – that may or may not be a concern depending upon the data set one is planning on using to create the treemap. Here is a snapshot from a random data set which had 6 levels in the hierarchy and about 384 rows (with 526 unique data points). The first treemap took 0.82 seconds on my new AMD X4 965 BE (more about it later) with Excel 2007.
The number of items across levels and the number of levels themselves are limited only by the processing power. For treemaps with a few hundred items and a less than a dozen levels in the hierarchy, processing power should not really be too much of a concern. However larger treemaps will definitely need robust computational resources and take longer to plot. Its the nature of the beast itself – large treemaps are resource intensive – though I’ve tried to develop the code with the aim to keep rendering times as a liner function of the size of the data set.
I am also thinking that I could perhaps launch it as a commercial application and see what happens. There are a few other commercial and free treemap applications out there. I am hoping this is going to be one of the first few based completely on Excel (there is also a microsoft treemapper which I haven’t been able to get to work, yet).
Keep watching this space for more.