DataViz.Layout.Pattern
- Package
- purescript-hylograph-layout
- Repository
- afcondon/purescript-hylograph-layout
Geometric Layout Patterns
Simple, deterministic layout functions for positioning N items within a viewport. Each function handles all the tedious calculations (aspect ratio, spacing, centering) and returns an array of points ready to zip with your data.
Usage
import DataViz.Layout.Pattern (grid, phyllotaxis)
import DataViz.Layout.Pattern.Types (viewportWithPadding)
-- Layout 100 items in a grid with 20px padding
let vp = viewportWithPadding 800.0 600.0 20.0
let positions = grid vp 100
-- Zip with your data
let positioned = Array.zipWith (\pos datum -> { x: pos.x, y: pos.y, datum })
positions myData
#phyllotaxis Source
phyllotaxis :: Viewport -> Int -> Array PointPhyllotaxis layout - golden angle spiral like sunflower seeds Produces beautiful, naturally-looking distributions. Items are placed at increasing distances from center using golden angle.
#layered Source
layered :: Viewport -> Array Int -> Array PointLayered layout - multiple horizontal rows with varying item counts. Perfect for neural networks, hierarchies, or any row-based visualization.
Takes an array of item counts per layer. Returns flat array of all positions. Layers are evenly spaced vertically; items within each layer are evenly spaced horizontally across the full width.
-- Neural network: 4 inputs, 8 hidden, 8 hidden, 2 outputs
let positions = layered vp [4, 8, 8, 2]
Re-exports from DataViz.Layout.Pattern.Types
#viewportWithPadding Source
viewportWithPadding :: Number -> Number -> Number -> ViewportCreate a viewport with uniform padding
#uniformPadding Source
uniformPadding :: Number -> PaddingUniform padding on all sides
- Modules
- DataViz.
Layout. Adjacency - DataViz.
Layout. Adjacency. Layout - DataViz.
Layout. Adjacency. Types - DataViz.
Layout. Chord - DataViz.
Layout. Chord. Layout - DataViz.
Layout. Chord. Types - DataViz.
Layout. Hierarchy. Cluster - DataViz.
Layout. Hierarchy. Core - DataViz.
Layout. Hierarchy. EdgeBundle - DataViz.
Layout. Hierarchy. EdgeBundle. Bilink - DataViz.
Layout. Hierarchy. EdgeBundle. BundleCurve - DataViz.
Layout. Hierarchy. EdgeBundle. Hierarchy - DataViz.
Layout. Hierarchy. EdgeBundle. RadialCluster - DataViz.
Layout. Hierarchy. EdgeBundle. Types - DataViz.
Layout. Hierarchy. Link - DataViz.
Layout. Hierarchy. Pack - DataViz.
Layout. Hierarchy. Partition - DataViz.
Layout. Hierarchy. Tree - DataViz.
Layout. Hierarchy. TreeStyle - DataViz.
Layout. Hierarchy. Treemap - DataViz.
Layout. Hierarchy. Types - DataViz.
Layout. Pattern - DataViz.
Layout. Pattern. Types - DataViz.
Layout. Sankey. CSV - DataViz.
Layout. Sankey. Compute - DataViz.
Layout. Sankey. ComputeWithSteps - DataViz.
Layout. Sankey. Path - DataViz.
Layout. Sankey. Types - DataViz.
Layout. StateMachine - DataViz.
Layout. StateMachine. Layout - DataViz.
Layout. StateMachine. Path - DataViz.
Layout. StateMachine. Types