treeMappa
changes

New to Version 3.0.1 (bug fix only, no API changes)

  • Processing sketches that use PTreeMappa will now run as applets without generating a security exception.
  • treeMappa.jar now runs correctly as a stand-alone application (previous version was missing the manifest file that allows .jar files to be run from the command line).

New to Version 3.0.0

  • treeMappa is now fully open source under the LGPL licence. See the treeMappa Google code pages for details.
  • New class PTreeMappa for easy integration with Processing.
  • Numerous minor changes to the underlying software for easier integration with Processing. None of these changes should have any impact on the command line use of treeMappa.

New to Version 2.7.1 (Bug fix and API enhancements only)

  • Statistical summary now ignores all sub-pixel nodes when calculating mean aspect ratio and other statistics.
  • [API] When calling TreeMapNode's getLevel() and getMaxDepth() methods, results are now always current even after any methods that alter the tree topology are called.
  • [API] TreeMapNode now calculates hierarchy level automatically when a node is added to a tree. Constructors now no longer take a 'level' argument.
  • [API] Hidden TreeMapNode's setArea(), setRectangle(), resetAccumulation() and accumulateSize() methods as these should never need to be called on a node-by-node basis.
  • [API] Added custom sorting methods to TreeMapNode by providing a Comparator to sortDescendants() and sortChildren().
  • [API] Added setWidth() and setHeight() methods to TreeMappa to allow the size and aspect ratio of the entire tree to be changed.
  • [API] Added a getNeedsBuilding() method to TreeMappa to indicate if some change has been made that will affect treemap layout, but a call to buildTreeMap() has not yet been made. Note that this method will not respond to any direct changes to TreeMapNodes that have not been issued via a TreeMappa object.
  • [API] The sizeValue parameter of a TreeMapNode is now provided as a Float object. If this is null, the size of the node is found by accumulating the sizes of all its descendants. If not null, this value is used for the node's size regardless of the accumulated sizes of its children. Added a setSizeValue() method to TreeMapNode to allow this size to be changed once a tree has been created.

New to Version 2.7

  • Treemap configuration options can now be saved and loaded with the command line options saveConfig and loadConfig. The configurations are stored in an XML file that can either be generated and edited externally or retrieved from previous saveConfig files.
  • Label fonts can now be set from the command line with the leafTextFont and textFont commands (leaf and branch fonts respectively. Since font availabilty is system dependent, if the given font is not found, unknown font commands will default to a Sans serif font.
  • By default, TreeMappa does not now show the cascading tree view of the tree at the top of the window. To show the cascading tree view, set the configuration parameter showTreeView to true.
  • Non-graphical output can be generated by setting the configuration parameter textOnly to true. This allows treemap coordinate files to be written as part of a command line script without invoking any GUI. Note that this option cannot be used to save graphic file formats such as SVG or raster image files.
  • Reporting of progress as a treemap loads data, builds tree and displays it can now be turned on or off with the verbose option. The default is false so only errors are reported to the console.
  • Fixed bug that prevented text labels from being displayed on some Java versions on MacOSX (java bug).

New to Version 2.6

  • Vertical labels, both leaf and branch nodes, can be placed by setting the new parameter allowVerticalLabels to true. This will only place nodes vertically if doing so increases the text size beyond the horizontal text size and that horizontal size is less than the maximum text size set for the node.
  • Multi-line text labels now centre all lines rather than left-justify and centre around longest line.
  • Fixed bug that could cause NullPointerException if the border of a branch node was larger than the size of the node. Now, in such cases, the border is shrunk until there is sufficient space to show the node.
  • Border colour can now be controlled with the borderColour parameter, which takes a #rrggbb string in hex format. Note that alpha values are ignored since transparancy of borders is attenuated with node depth.
  • Random 'evolutionary' colour scheme now uses a less saturated, brighter colour scheme.
  • Added randColourLevel to assign the deepest level of the hierarchy to receive random colours if not defined in input file. Levels below this one will inherit their parent colour with a random mutation. The degree of mutation can now be controlled with mutation set between 0 (no mutation) and 1 (maximum mutation).
  • Dummy nodes can now be represented in CSV files by giving them a negative size value. The negative magnitude of the size value indicates the size of the dummy node. Dummy nodes are not drawn but their space is preserved. Statistical summaries ignore the presence of dummy nodes except for their displacement effect on other non-dummy nodes.
  • Statistical summary R-sq value now compares order-distance from global origin, not a node's immediate parent's origin. This gives a more meaningful measure of node placement consistency for trees with depths greater than 1.
  • The verison of TreeMappa can now be found by issuing the -version command line option.

New to Version 2.5

  • Appearance of displacement vectors can now be controlled at different levels of the hierarchy - both showBranchDisplacement and vectorWidth have [n] options allowing these settings to be controlled independently at different levels. Displacement vector width for leaves can now be set regardless of their level in the hierarchy with leafVectorWidth.
  • Layout alignment can now be controlled to use horizontal or vertical strips rather than chosing the alignment that maximises aspect ratio. This constraint can be set for all, some or none of the levels of the hierarchy.
  • A new format 'CSVSpatial' allows nodes to have independent spatial locations at different levels in the hierarchy.
  • Corrected bug that prevented .jpg and .bmp files from being saved correctly (cannot save transparency in these formats). Corrected bug that produced corrupt SVG files. SVG output now places text on top of all treemap nodes.
  • Branch and leaf text label colours can now be set independently at different levels. Colours can now be specified as RGBA hex values so transparancy can also be controlled independently at each level. Label colours and transparency now fully represented in SVG output.

New to Version 2.4

  • Output can now be saved as a shapefile. If treemap nodes have a spatial location, the shapefile will be scaled to the minimum enclosing rectangle of all spatial nodes. The attributes of the shapefile (stored in the DBX file) are:

    TreemapID Label Size Colour Depth Leaf

    Where Label, Size and Colour are those defined in the treeMappa input file. Depth is the hierarchy depth of a given node where the root node is 0. Leaf is Y if the node is a leaf, or N if it is a branch.
  • The useLabel option determines if the text label in a CSV file (the first item) is used as part of the hierarchy or not. If false, the leaf nodes are represented by the last item in each CSV row and given the label of the first item.
  • Displacement vector arrow heads can be turned on/off and now symbolise the leaf node that has been displaced.
  • Statistical summary now includes 'readability' (Bederson et al, 2003), r-squared distance from origin (squarified/ordered squarified only) and average vector distance and angular displacement for spatial data.
  • Random colours can now be reproduced by setting a 'seed' parameter to any long integer (a given seed value will produce the same set of random evolutionary colours every time).
  • A number of parameters can now be set for specific levels in the tree hierarchy in the same treemap. Currently the following parameters can be set in this way: layout, border and maxBranchText. To do this, append a number after the paramater, with no spaces, to indicate the level in the hierarchy that the given parameter applies to, where 0 is the root level. If no number is supplied, the given parameter is applied to all levels in the hierarchy. This can be overridden by applying a level-specific parameter after calling a general layout. For example,

    layout orderSquarified layout2 spatial layout3 sliceAndDice
    border 0 border1 10 border2 5

    The first example would apply the ordered squarified layout to levels 0,1 and anything above 3, the spatial layout to level 2 and the slice and dice layout to level 3. The second example would apply a border of 0 to all levels except level 1 which would have a border of 10 units and level 2 that would have a border of 5 units.
  • Important: CSV file format has now been enhanced, with column 2 used to provide 'order'. Any numeric values can be used with the lower the number the higher the order. This saves from having to add small amounts to the 'size' value to explicitly control node order, and allows order to be completely independent of any other node characteristic. If any sibling nodes have the same order value, they are sorted by their relative size, and then colour value. The full list of CSV column headings are now:

    Label, Order, Size, Colour, x, y, Level0, Level1, Level2 etc.

    To use the pre-v.2.4 CSV format (where size and colour value control node order), set the type parameter to csvCompact.

New to Version 2.3

  • 4 new 'pivot' layouts (see Bederson et al, 2003) including a spatial pivot layout (see Mansmann et al, 2007).
  • Ability to display raw colours where the 'colour' value in a CSV file represents the 24 bit RGB value (useful for displaying CIELab and other 2d colour values). To use raw colours, the colour table file should contain the following two lines only:

    <?xml version="1.0" ?>
    <colourTable raw="true" />
  • Ability to overlay displacement vectors for nodes with geographic location. Width of displacement vectors can be controlled with the vectorWidth parameter, which can be a decimal width if necessary (default width is 0.3 pixels). Label text colour can be set with an HTML style hex value using the 'textColour' parameter.

New to Version 2.2

  • New stripmap (with lookahead) and slice and dice layouts available.
  • SVG output possible (just name output file with a .svg extension).
  • Transparency of labelling can be turned on or off (useful for image formats that don't have transparency defined).
  • First level of hierarchy is now in a bolder font when labelled.
  • Spatial layout now defaults to ordered squarified layout if sibling nodes share the same location.
  • Treemap window now appears in centre of screen.
  • Node labels over multiple lines can now be defined by inserting a '\n' (without quotes) at the new line position(s).

New to Version 2.1

  • Implementation of the spatial treemap layout. Set the layout option to spatial to generate the spatial ordering of nodes.

New to Version 2.0

  • Ability to zoom and pan the treemap with by dragging the left and right mouse buttons.
  • An output image of dimensions specified by the given width and height parameters can be created using the imageFile option.
  • To stop node labels from filling the entire space of their node, a maximum text size can be set using maxLeafText and/or maxBranchText (both specified as a point size).
  • For files without colour specification, V2 uses an improved random colour generation that should result in greater contrast in hue of the first level nodes in the tree.
Last modified, 4th April, 2011