Treemap - Create Treemaps from various sources of data.


Treemap documentation  | view source Contained in the Treemap distribution.

Index


NAME

Top

Treemap - Create Treemaps from various sources of data.

SYNOPSIS

Top

 #!/usr/bin/perl -w
 use Treemap::Squarified;
 use Treemap::Input::Dir;
 use Treemap::Output::Imager;

 my $dir = Treemap::Input::Dir->new();
 my $imager = Treemap::Output::Imager->new( WIDTH=>1024, HEIGHT=>768, 
                                            FONT_FILE=>"ImUgly.ttf" );
 $dir->load( "/home" );

 my $treemap = new Treemap::Squarified( INPUT=>$dir, OUTPUT=>$imager );
 $treemap->map();
 $imager->save( "test.png" );

DESCRIPTION

Top

This base class is not meant to be directly instantiated. Subclasses of Treemap which implement specific Treemap layout algorithms should be instantiated instead. See the SEE ALSO section below for a list.

Traditional representations of hiarchal information trees are very space consuming. There is a large amount of redundant information and padding to convey the tree structure.

Treemaps are representations of trees that use space-filling nested rectangles to convey the tree structure.

e.g., a directory tree:

   2       ./CVS/Root
   2       ./CVS/Repository
   2       ./CVS/Entries
   2       ./CVS/Entries.Log
   10      ./CVS
   2       ./Treemap/CVS/Root
   2       ./Treemap/CVS/Repository
   2       ./Treemap/CVS/Entries
   2       ./Treemap/CVS/Entries.Log
   .
   .
   .
   (goes on for 80 lines)

e.g., a treemap of a directory tree:

 .-------------------------------.
 |             ROOT              |
 |.-----------..-------..-------.|
 ||ImUgly.ttf ||Treemap||  CVS  ||
 ||           ||.-----.||       ||
 ||           |||Input|||       ||
 ||           |||     || >-----< |
 ||           || >---< ||example||
 ||           |||Outpu|||       ||
 ||           ||`_____'||       ||
 |`-----------'`-------'`-------'|
 `-------------------------------'

Raster output is much more useful (like a GIF, or PNG) than ascii, as the labels are scaled appropriately, and alpha transparency is used to show information that would otherwise be hidden.

METHODS

Top

new()

INPUT

A Treemap::Input object reference.

OUTPUT

A Treemap::Output object reference.

PADDING

Distance between in a parent rectangle, and all it's children in points. Points being whatever unit of measurement the drawing routines of the output object uses.

SPACING

Spacing around the outside of a rectangle in points. Points being whatever unit of measurement the drawing routines of the output object uses.

For a wondeful surprise, set PADDING, and SPACING to zero. It's more difficult to see the nesting, but it reveals other structures that you likely won't see unless you render your treemap at an extremely high resolution.

map()

Perform the actual operation of treemapping.

EXPORT

Top

None by default.

SEE ALSO

Top

Treemap Layout Classes:

Treemap::Strip, Treemap::Squarified

Treemap Input Classes:

Treemap::Input

Treemap Output Classes:

Treemap::Output

BUGS

Top

Subclasses should autoload in some manner to ease developer use.

Violates data incapsulation, and reaches into the innards of Treemap::Input objects. It really shouldn't do that.

AUTHORS

Top

Simon Ditner <simon@uc.org>, and Eric Maki <eric@uc.org>

CREDITS

Top

Original Treemap Concept: Ben Shneiderman <ben@cs.umd.edu>, http://www.cs.umd.edu/hcil/treemap-history/index.shtml

LICENSE

Top

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.


Treemap documentation  | view source Contained in the Treemap distribution.