Module

DataViz.Layout.Chord

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

DataViz.Layout.Chord

Pure PureScript chord diagram layout algorithm.

A chord diagram shows relationships between nodes arranged in a circle, with ribbons (curved bands) connecting related nodes.

This module provides pure layout computation that can be used with any rendering backend (Hylograph HATS, D3, Canvas, SVG, etc.)

Example usage:

import DataViz.Layout.Chord (layout)

let matrix = [[0,1,2],[1,0,3],[2,3,0]]
    result = layout matrix
-- result.groups contains arc positions
-- result.chords contains ribbon connections

For rendering, use the path generators in Hylograph.Expr.Path.Generators:

  • genArc for the arc segments
  • genRibbon for the ribbon paths

Re-exports from DataViz.Layout.Chord.Layout

#layoutWithConfig Source

layoutWithConfig :: LayoutConfig -> Array (Array Number) -> ChordLayout

Layout a chord diagram with custom configuration

#layout Source

layout :: Array (Array Number) -> ChordLayout

Layout a chord diagram with default configuration

Re-exports from DataViz.Layout.Chord.Types

#LayoutConfig Source

type LayoutConfig = { endAngle :: Number, padAngle :: Number, sortChords :: Boolean, sortGroups :: Boolean, startAngle :: Number }

Configuration for chord layout

#ChordMatrix Source

type ChordMatrix = { matrix :: Array (Array Number), names :: Array String }

Input matrix for chord diagram Contains connection weights and node names

#ChordLayout Source

type ChordLayout = { chords :: Array Chord, groups :: Array ChordGroup }

Complete chord layout ready for rendering

#ChordGroup Source

type ChordGroup = { endAngle :: Number, index :: Int, startAngle :: Number, value :: Number }

A group (arc) in the chord layout Represents a single node's portion of the circle perimeter

#Chord Source

type Chord = { source :: ChordGroup, target :: ChordGroup }

A chord (ribbon) connecting two groups Represents the flow between two nodes

#defaultConfig Source

defaultConfig :: LayoutConfig

Default layout configuration