A D3 plugin that computes hierarchical treemaps using Voronoi tessellation for non-rectangular convex polygons.
d3-voronoi-treemap is a D3.js plugin that computes treemaps using Voronoi tessellation. It visualizes hierarchical data by partitioning convex polygons into weighted cells, where each cell's area represents its data weight. This provides an alternative to traditional rectangular treemaps with a more organic, non-grid-aligned appearance.
Data visualization developers and designers using D3.js who need to create hierarchical visualizations with custom, non-rectangular shapes for presentations, dashboards, or interactive media.
It enables unique, aesthetically flexible treemap layouts that fit any convex polygon, offering a distinct visual style compared to standard D3 treemaps while maintaining accurate area-weight representation.
D3 plugin which computes a treemap based on a Voronoi tesselation
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Generates non-aligned, Voronoi-based cell shapes for a unique aesthetic, as demonstrated in the square, hexagon, and circle examples in the README.
Supports any hole-free convex polygon as the outer boundary, allowing for custom shapes like diamonds or irregular convex polygons, highlighted in the key features.
Integrates with d3-hierarchy to handle nested weighted data, assigning polygons based on node weights, as shown in the TL;DR code snippet.
Allows the use of seedable PRNGs for deterministic results, enabling consistent visualizations across computations, mentioned in the prng API section.
Uses an iterative process that can be slow, especially with large datasets or low convergence ratios, as acknowledged in the Context section about computation time.
Requires loading and managing dependencies on d3-weighted-voronoi and d3-voronoi-map plugins in a specific order, adding to initial configuration complexity.
Only supports D3.js versions 4, 5, and 6, which may not align with projects using newer versions like D3 v7, potentially hindering upgrades.