Module

DataViz.Layout.Hierarchy.EdgeBundle.RadialCluster

Package
purescript-hylograph-layout
Repository
afcondon/purescript-hylograph-layout

DataViz.Layout.Hierarchy.EdgeBundle.RadialCluster

Radial cluster layout for edge bundling. Positions leaf nodes around a circle and internal nodes at the center.

The layout uses (angle, radius) coordinates:

  • angle: position around the circle (0 to 2π radians)
  • radius: distance from center (internal nodes closer to center, leaves at edge)

#RadialLayoutConfig Source

type RadialLayoutConfig = { endAngle :: Number, innerRadius :: Number, outerRadius :: Number, startAngle :: Number }

Configuration for radial cluster layout

#defaultRadialConfig Source

defaultRadialConfig :: RadialLayoutConfig

Default configuration

#RadialNode Source

data RadialNode a

A node with radial coordinates

Constructors

Instances

#radialCluster Source

radialCluster :: forall a. RadialLayoutConfig -> TreeNode a -> RadialNode a

Apply radial cluster layout to a tree

Algorithm:

  1. Assign sequential indices to leaves (angular positions)
  2. Position leaves evenly around the circle at outerRadius
  3. Position internal nodes at mean angle of children, at appropriate radius

#toCartesian Source

toCartesian :: forall a. RadialNode a -> { x :: Number, y :: Number }

Convert radial coordinates to Cartesian for SVG rendering

#radialClusterFromTree Source

radialClusterFromTree :: forall a. TreeNode a -> RadialNode a

Convenience function: layout from a TreeNode using default config