Ad

d3-dag: DAG Layout Algorithms

d3-dag implements data structures and layout algorithms for directed acyclic graphs; it supports various graph layout techniques for visualizing hierarchical data.
Screenshot of erikbrinkman/d3-dag homepage

d3-dag provides a data structure for manipulating directed acyclic graphs (DAGs), offering solutions when d3-hierarchy is insufficient for complex data relationships. It implements a flexible framework for creating and modifying DAGs, enabling custom layouts. The core approach involves defining operators to modify DAG behavior through a fluent interface, promoting modularity and reusability. This library was originally designed to mimic d3-hierarchy while embracing modern JavaScript conventions.

d3-dag offers a collection of pre-built layout algorithms, including Sugiyama, Zherebko, and Grid, providing diverse visualization options. It features a flexible operator system enabling custom modifications to graph behavior. The library supports dynamic layout adjustments via node activation. It facilitates creating DAGs from various data structures, offering adaptability to different data formats.

  • Layered Layouts: Supports Sugiyama, Zherebko, and Grid layouts for visualizing hierarchical data.
  • Operator-Based API: Provides a fluent interface using operators for modifying graph behavior.
  • Dynamic Updates: Allows dynamic adjustments to DAGs at runtime, through node activation.
  • Customizable: Offers flexibility to create custom layout algorithms by extending the operator system.
  • Data-Driven: Can create DAGs from various data sources with parent-child relationships.
  • Extensible: Designed for extension and customization to support new graph layout techniques.
  • TypeScript: Written in TypeScript for enhanced type safety and developer experience.

d3-dag is in light maintenance mode, with simple feature requests potentially being implemented. While development has slowed due to evolving alternatives, the core functionality remains functional. Documentation is available, though not exhaustive. The community presence is currently limited, but contributions are encouraged.

d3-dag is valuable for developers needing to visualize hierarchical or DAG-structured data in JavaScript. It simplifies the implementation of various graph layouts, providing a solid foundation for building custom visualizations. Compared to libraries like React Flow or Graphology, d3-dag offers a more focused approach to graph layout and control, making it suitable for specific visualization needs and scenarios where interaction is less of a primary concern.

Languages:
Summarize:
Share:
Stars
1,511
Forks
91
Issues
3
Created
8 years ago
Commit
17 days ago
License
MIT
Archived
No
Updated 3 hours ago

Similar Repositories