documentationfor yFiles for HTML 2.6

RadialLayout

This layout algorithm arranges graphs in a radial fashion.

Inheritance Hierarchy
MultiStageLayout
RadialLayout
Implemented Interfaces

Remarks

Layout Style

The nodes are distributed into circles (layers) around a common center based on predefined layering strategies. Some potential applications include visualization of social networks, data clustering and bioinformatics.

Sample output of the layout algorithm with default settings and one center node

Sample output of the layout algorithm with straight-line edges and five center nodes using CUSTOM policy

Sample output of the layout algorithm for a tree with dendrogram layering, radial polyline edge routing and maximum child sector angle 360

Concept

The layout algorithm creates a virtual tree structure for the input graph whose root node is placed in the center of the circles. All children of a tree node are placed on a higher layer (i.e. on a circle of larger radius) than their parent. A sector is calculated for each node such that the sector of each child node in the virtual tree is a sub-sector of its parent's sector. The radii of the circles are calculated based on the sizes of the sectors required to accommodate each whole subtree.

Features

There are different center nodes policies that can be applied in order to determine the nodes that will be placed in the center (single center node) or on the innermost circle (more than one center node). The distribution of the nodes to the circles is specified by a layering strategy.

The edges are routed based on the edge routing strategy. Note that the edge routing cannot always prevent node-edge overlaps.

The minimum distance between nodes of the same circle is specified using minimumNodeToNodeDistance. If there are too many nodes assigned to a circle, the radius of the particular circle will be increased until all nodes fit onto it.

The distance between consecutive layers is specified using layerSpacing. The radii of the circles are a multiple of this spacing value. If the layer spacing is 0, the radii are chosen such that all nodes fit on their corresponding circles. A minimum layer distance is specified by minimumLayerDistance.

The RadialLayout also supports node types as a subordinate criterion for nodes of the same circle. More precisely, for nodes of the same circle (i.e., within the same layer), the algorithm prefers to place nodes of the same type next to each other if this does not induce additional crossings or conflicts with other constraints. Note that the algorithm uses an additional local optimization heuristic to improve the placement with respect to node types and, thus, does not guarantee optimal results. Furthermore, this additional step may increase the required runtime. The layer assignment is not affected by the node types.

The ordering of successor nodes of a local root node which are on the same circle can be specified by means of IComparer<T> mapped to the local root node, see OUT_EDGE_COMPARER_DP_KEY. This ordering criterion is stronger than the node types. This feature is especially suitable for tree-like graphs to sort child nodes of a local root node.

Default Values of Properties

centerNodesPolicyWEIGHTED_CENTRALITYThe node determined using weighted centrality is placed in the center.
componentLayoutEnabledfalseThe stage that arranges connected graph components is activated.
considerNodeLabelsfalseNode labels are not considered.
edgeRoutingStrategyARCThe edges will be routed as arcs.
integratedNodeLabelingfalseNode labels are not placed by this algorithm.
layeringStrategyBFSThe layers are determined using BFS.
layerSpacing25
minimumEdgeToEdgeDistance50
minimumLayerDistance100
minimumNodeToNodeDistance10
nodeLabelingPolicyRAY_LIKE
orientationLayoutEnabledtrueThe orientation is activated.

Type Details

yfiles module
layout-radial
yfiles-umd modules
layout-radial, layout-hierarchic, layout-tree, layout
Legacy UMD name
yfiles.radial.RadialLayout

See Also

Constructors

Properties

Methods

Constants