Treemaps for space constrained visualization

I have been using WinDirStat for quite some time now to visualize my hard disk usage and to clean up when disk space was low.
But it was just yesterday that I realized that the cool visualization that is used by WinDirStat actually has a name “Treemaps” and has a lot of interesting history behind it.

It was created by Ben Shneiderman at the University of Maryland, here is an excerpt from the University site.

During 1990, in response to the common problem of a filled hard disk, I became obsessed with the idea of producing a compact visualization of directory tree structures. Since the 80 Megabyte hard disk in the HCIL was shared by 14 users it was difficult to determine how and where space was used. Finding large files that could be deleted, or even determining which users consumed the largest shares of disk space were difficult tasks.

Tree structured node-link diagrams grew too large to be useful, so I explored ways to show a tree in a space-constrained layout. I rejected strategies that left blank spaces or those that dealt with only fixed levels or fixed branching factors. Showing file size by area coding seemed appealing, but various rectangular, triangular, and circular strategies all had problems. Then while puzzling about this in the faculty lounge, I had the Aha! experience of splitting the screen into rectangles in alternating horizontal and vertical directions as you traverse down the levels. This recursive algorithm seemed attractive, but it took me a few days to convince myself that it would always work and to write a six line algorithm.

Read more about the history of Treemaps at

The site also has references to papers and other tools that use the Treemap visualization.

In fact I remember that at TechEd 2006 Microsoft had shown a demo of a WinFS based application called Life Journal that used a variant of the Treemap visualization to show emails, pictures etc. on a timeline.

Sijin Joseph
Sijin Joseph

Hands-on technology leader with 15+ yrs of experience in launching products, scaling up teams and setting up software infrastructure.