README.mdown

July 30, 2011 ยท View on GitHub

README

An open source ActionScript 3 library for generating Squarified Treemaps. The library is based on the algorithm by Mark Bruls, Kees Huizing, and Jarke J. van Wijk from the Eindhoven University of Technology, Dept. of Mathematics and Computer Science,The Netherlands. The paper can be found here: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.36.6685&rep=rep1&type=pdf

The library was used to build the DiggGraphr application mentioned here: http://infosthetics.com/archives/2009/01/digggraphr_digg_stories_in_a_treemap.html

Usage:

The example below uses a MapItem class that implements the ITreeMapData interface. The weight property on that interface is used to generate the relative size of the individual rectangles

Custom renderers can be used to draw the rectangles by extending the Treemap class and overriding the draw function.

package
{
	import com.arpitonline.treemap.TreeMap;

	import flash.display.Sprite;
	import flash.events.Event;

	public class SampleTreemapProject extends Sprite
	{

		private var tm:TreeMap = new TreeMap();

		public function SampleTreemapProject()
		{
			stage.scaleMode = "noScale";
			stage.align = "TL";


			tm.setSize(stage.stageWidth, stage.stageHeight);

			var dp:Array = [];
			for(var i:int = 0; i < 5; i++){
				var i1:MapItem = new MapItem("Item_"+i, 4 );
				dp.push(i1);

			}

			tm.dataProvider = dp;
			addChild(tm);

			stage.addEventListener(Event.RESIZE, onStageResize);

		}

		private function onStageResize(event:Event):void{
			tm.setSize(stage.stageWidth, stage.stageHeight);
			tm.layout();
		}
	}
}

import com.arpitonline.treemap.ITreeMapData;

class MapItem implements ITreeMapData{

	private var _label:String;
	private var _weight:Number
	public function MapItem(label:String, weight:Number){
		_label = label;
		_weight = weight;
	}

	public function get weight():Number{
		return _weight;	
	}
}