Monday, February 09, 2015
Wednesday, June 20, 2012
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. This algorithm and the initial designs led to the first Technical Report (HCIL TR 91-03) in March 1991 which was published in the ACM Transactions on Graphics in January 1992 (http://www.acm.org/pubs/citations/journals/tog/1992-11-1/p92-shneiderman/). Choosing the right name took probably as long, but the term 'treemap' described the notion of turning a tree into a planar space-filling map.
Got to say, wow, that's a boatload of treemap information and references. Why are treemaps important? Look at a treemap and then look at the Metro Start Screens (Win8, WinPhone8, etc)...
Friday, July 10, 2009
Treemap’ing in Silverlight – Treemap control added to the Silverlight Toolkit (available in Experimental Quality Band)
“Since this is my first post after over one month break I own an explanation. I have two excuses: one is of course vacations and the other one is really nice. Together with the colleagues of mine, I had the pleasure to work on a new control – TreeMap - that is included in the next release of Silverlight Toolkit.
I perceive the introduction of this control as especially important because it enables you to easily visualize more than one dimensional, correlated data in a way that is attractive and understandable to a user without any statistician or mathematical background.
I’ve been a fan of using treemaps to help visualize data for years. Since I first saw it used in WinDirStat years ago and then in NDepend, treemaps just click for me. The way they provide so much information in a compact yet easy to understand form hooked me.
The problem has been that there have been few implementations to date (or few free/cheap/reasonably priced ones). Luckily for me that tide seems to be changing. In the past few months I’ve seen a marked uptick in the number of treemap controls coming online, from commercial third parties, like Infragistics, to a number of OSS projects, like Pixel in Gene - A SilverLight TreeMap control & GPDE Team Blog - Silverlight Treemap Control.
With the inclusion of a treemap control in the Silverlight Toolkit, is 2009 the year treemaps go mainstream?
Related Past Post XRef:
Infragistics NetAdvantage Select 2008 Volume 3 released today
AddressOf.com - MS Research TreeMap.Net
Tuesday, November 04, 2008
“We have a new volume of NetAdvantage Select 2008 Vol. 3 shipping today that includes updated ASP.NET and Windows Forms controls!
What's new in NetAdvantage Select 2008 Volume 3?
Please review the new features in the NetAdvantage ASP.NET controls (http://www.infragistics.com/dotnet/netadvantage/aspnet.aspx#NewFeatures) and the NetAdvantage Windows Forms controls (http://www.infragistics.com/dotnet/netadvantage/winforms.aspx#NewFeatures) in this release posted to our website.
“In this new release of the NetAdvantage Windows Forms controls we have added .NET 3.5-native assembly builds, support for the latest file formats, and numerous enhancements that will be of interest to WinCalcManager™ developers and users of the our Infragistics.Excel class library whether it is to import workbooks containing Excel functions or exporting the data grid to Excel. Read on to learn about all of the added features.
“Empowering many data entry scenarios that will leave users appreciating the usability of your data-intensive applications, NetAdvantage for Windows Forms 2008 Vol. 2 has rewritten the book of what is possible with several new data grid features in the WinGrid™ control like row edit templates, column header rotation, CardView printing and custom checkbox glyphs. Combined with new controls like the WinValidator™ to ensure data input by users is correct, and the new intuitive suggest mode in WinCombo™, we think you'll agree this release delivers tremendous value.
WinChart™ - Adds Tree Map Chart Type
NetAdvantage for Windows Forms 2008 Vol. 2 has added the tree map chart type to WinChart. Tree maps are used to display large hierarchical data sets as nested rectangles, where the size of these rectangular regions correlate proportionately to the importance of the data point the rectangle represents. They are also sometimes referred to as heat map charts, although WinChart already has a separate chart type for measuring heat and other intensities over a continuous area or 3-D surface which is different from the tree map. Real world examples of tree map charts include maps of the stock market or hard disk defragmenting utilities.
I didn’t know until talking to the Infragistics crew at PDC that they had a TreeMap component (well kind of a component, it’s part of their WinChart component). It was pretty funny. I was asking them, that if I had a wish, one thing I would like from them was a TreeMap. He looked at me funny, and said, “poof… We recently released one…” LOL
Sunday, August 12, 2007
"WordCloud - A Squarified Treemap of Word Frequency" - Something like this would be cool in a Feed Reader...
"WordCloud is a visual depiction of how many times a word is used, or its frequency if you will, within a given set of words. It does this by: reading in plain text, filtering out "stop words", counting how many times a word is used, and displaying results in a Squarified Treemap. (In the images above, the larger a node and more saturated the color, the more frequent its use.)
When I saw this, my first thought was, "Oh I want something like this in my Feed Reader."
Think high level analysis of the new, unread posts, with a user definable threshold (i.e. don't include words with less than ## occurrences). Then clicking on a word/square brings up the list of posts with that word. And a background thread updating the Map as you read through the posts...
Then of course, I'd also want Concept and Natural Language Processing (NLP) as well as just Word mapping.
(So pretty much an Electronic Data Discovery[EDD]/Electronically Stored Information[ESI] search, analysis and review tool for my web feeds... ;)
Related Past Post XRef:
Feed Stream Analysis - Web Feed/Post Analysis to Group Like/Related Posts
"Statistical parsing of English sentences"
"A Model for Weblog Research"
AddressOf.com - MS Research TreeMap.Net
Monday, April 02, 2007
Patrick, of NDepend, emailed me last week letting me know of a cool new feature in NDepend Professional, the Build Comparison feature.
"Demo Build Comparison
Explains how to know precisely what have been changed between 2 builds, how coupling has been impacted and how to detect breaking compatibilities issues. "
After checking out that demo, I thought it was time again to check out NDepend. It seems that I've blogged about NDepend once a year, for the last three years, so I'm due...
NDepend is a "... tool for .NET developers that allows controlling the complexity, the quality and the evolution of .NET code. NDepend analyses source code and assemblies and generates a report. A GUI allows to visualize, zoom and control any part of the code. "
For me, my interest in NDepend is based on the key word, "evolution." I'm looking at it to help me manage not just my code, but the libraries/assembles I rely on. I want to see, in code, what has changed between different versions of the third party assemblies I use.
For example, I use the GData .Net assembly in a couple projects and have a pretty aggressive release cycle. I want to use NDepend to help me determine the differences between the current GData assembly and the one I'm using. To help me determine if I want to actually use it, help me focus my testing on new/changed areas that I'm actually calling, etc, etc.
Also I think NDepend will be critical for me the next time a new, yet already existing project, is thrown over the wall to me... In playing with it, it looks like one great way to visually explore the code and structure of a project. A way to help me get a bigger picture of a project, its dependences, etc.
And last, I like the UI. :)
I have yet to use a treemap in a project, but I keep looking for the right opportunity. NDepend's usage of a treemap makes understanding the code just that much easier.
There are other touches I dig too. The entire UI seems designed to help you deal with lots of data, yet with the ability to zoom in to help you focus on the details too. The Zoom on the grids/pivot tables is pretty cool. It lets you zoom in and out on them, again to let you see the Big Pic or to focus on a specific method... That's pretty neat UI (and something I want in my apps ;).
Oh yeah, I almost forgot. You can easily (samples are included) add NDepend reporting/analysis to your build process (MSBuild, NAnt and CruiseControl.NET). So you can get automated NDepend reports with each build...
Okay, enough for now... There's a free trial/Open Source/academic version which, while having limited features, gives you a good feel for the utility.
The Professional version is not hobby coder cheap, but for work not too expensive. It's one of those things that would take you forever to write yourself and when you need it, you'll really need it...
[Full Disclosure Notice: I've been offered a free Professional License if helped create a little buzz about NDepend. But I've been blogging about how cool NDepend is for that last three years, without that incentive... Also I'd blog about the Build Comparison feature anyway, as it's pretty cool and something I can really see a use for. And my wife is not about to let me buy NDepend Pro for my OSS projects, so if I can do something I was already going to do anyway, and get something cool free for it... well... ;) ]
Wednesday, January 10, 2007
This site provides samples and examples of a bunch of different diagramming and visualization methods. From normal pie, line, bar charts to buzz word coverage of value chain, strategy map, failure tree to treemaps, heaven 'n' hell charts to cartoons.
A diagram for every need...
PS. The above website capture was done with the cool IECapt utility...
Thursday, February 17, 2005
WinDirStat Home Page
"WinDirStat reads the whole directory tree once and then presents it in three useful views:
The directory list, which resembles the tree view of the Windows Explorer but is sorted by file/subtree size,
The treemap, which shows the whole contents of the directory tree straight away,
The extension list, which serves as a legend and shows statistics about the file types.
* Coupling. Select an item in the directory list: The treemap highlights it; and vice versa.
* Built-in cleanup actions including Open, Show Properties, Delete.
* User-defined cleanups (command line based).
* Works with network drives and UNC paths.
* 'Create disk usage report' option.
This is another utility in drive space usage and analysis space.
There's another that I've been using for a bit and has become a standard for me, Treesize from JAM Software. TreeSize's Explorer context menu is the feature that has hooked me. Fits easily into my normal routine.
WinDirStat's usage of a Treemap is pretty cool. There are other utilities in this space that also use treemaps, but WinDirStat's combined list/data views with the treemap are very cool.
Also WinDirStat is free and open source...
Now I just need to see if it has any command line options so I can mung an Explorer context menu for it...
(via Larkware - The Daily Grind 561)
Tuesday, February 10, 2004
"Paschal L points out the Microsoft Research's TreeMap.Net. It's an interested way to view information. I saw it a while back as a map showing the newsgroup traffic. However, I didn't even think of using this model to view your drive usage. Now that's pretty cool. I downloaded it and had to dig in and play around with it. The code is pretty good, but could see a lot of improvement. They are using FileSystemObject via COM Interop to get the drives, files and folder tree information."