Class AlgorithmFactory

  • Direct Known Subclasses:
    SwingAlgorithmFactory

    @JsType
    public class AlgorithmFactory
    extends java.lang.Object
    Factory class for accessing predefined layout algorithms.
    • Field Detail

      • BINARY_TREE

        public static final Algorithm BINARY_TREE
        Implementation of the Binary Tree algorithm. It is described in:

        Martin Wattenberg and Ben Bederson: Dynamic treemap layout comparison. University of Maryland: http://www.cs.umd.edu/hcil/treemap-history/java_algorithms/LayoutApplet.html.

        Complexity: O(n log n), where n is the number of nodes in the tree.

      • SLICE

        public static final Algorithm SLICE
        Implementation of the Slice-and-dice algorithm described in the original treemap paper. It is described in:

        Ben Shneiderman. 'Tree Visualization with Tree-Maps: 2-d Space-filling Approach." ACM Transactions on Graphics, 11(1), pp. 92-99, 1992.

        It uses parallel lines to divide a rectangle representing an item into smaller rectangles representing its children. At each level of hierarchy the orientation of the lines - vertical or horizontal - is switched (alternate), computed according to the aspect ratio (Best), or fixed (Vertical, Horizontal).

        Complexity: O(n), where n is the number of nodes in the tree.

      • SQUARIFIED

        public static final Algorithm SQUARIFIED
        Implementation of the Squarified algorithm. It is described in:

        Bruls, D.M., C. Huizing, J.J. van Wijk. "Squarified Treemaps". In: W. de Leeuw, R. van Liere (eds.), Data Visualization 2000, Proceedings of the joint Eurographics and IEEE TCVG Symposium on Visualization, 2000, pp. 33-42.

        Sub-divids a parent rectangular area into child rectangles. It implements the squaring treemap algorithm where all child nodes are allocated areas proportional to their values, but the aspect ratio of each rectangle is kept as close as possible to a square.

        Complexity: O(n), where n is the number of nodes in the tree.

      • SQUARIFIEDPLUS

        public static final Algorithm SQUARIFIEDPLUS
        Implementation of the Squarified+ algorithm. It is described in:

        Cesarano A, Ferrucci F, Torre M. A heuristic extending the Squarified treemapping algorithm. arXiv preprint arXiv:1609.00754. 2016 Sep 2.

        A heuristic extending the squarified algorithm with better aspect ratios and higher homogeneity among items.

        Complexity: O(n), where n is the number of nodes in the tree.

      • STRIP

        public static final Algorithm STRIP
        Implementation of the Strip algorithm. It is described in:

        Ben Shneiderman and Martin Wattenberg. Ordered and quantum treemaps. Information Visualization, 2001. Infovis 2001. IEEE Symposium on pages 73-78, 2001. ISSN 1522-404X.

        Complexity: O(sqrt(n)) average, O(n) worse case, where n is the number of nodes in the tree.

      • PIVOT_BY_SPLIT_SIZE

        public static final Algorithm PIVOT_BY_SPLIT_SIZE
        Implementation of the Pivot By algorithm. It is described described in:

        Ben Shneiderman and Martin Wattenberg. Ordered treemap layouts. IEEE Symposium on Information Visualization, 0:73, 2001.

        Complexity: O(n^2), where n is the number of nodes in the tree (depends on the pivot in use).

      • SPLIT

        public static final Algorithm SPLIT
        Implementation of the Split algorithm. It is described in:

        Engdahl, B. "Ordered and Unordered Treemap Algorithms and Their Applications on Handheld Devices". 2005.

        Produces a layout where the natural ordering of the data set is roughly preserved, while in most cases producing better aspect ratios than the Pivot and the Strip treemaps.

        Complexity: O(n log n) (worst case), O(n) average, where n is the number of nodes in the tree.

      • CIRCULAR

        public static final Algorithm CIRCULAR
        Circular treemap layout.
      • CIRCLEPACKING

        public static final Algorithm CIRCLEPACKING
        Circle packing treemap layout.
      • PIE

        public static final Algorithm PIE
        Pie Chart layout.
      • BAR

        public static final Algorithm BAR
        Bar Chart layout.
      • MATRIX

        public static final Algorithm MATRIX
        Matrix layout.
      • SUNBURST

        public static final Algorithm SUNBURST
      • ICICLE

        public static final Algorithm ICICLE
    • Constructor Detail

      • AlgorithmFactory

        protected AlgorithmFactory​(Algorithm... entries)