Comments (1)
Sorry for the delay in responding this. I've been busy with lots of other things.
I think I'm a little confused by what you're asking in terms of plugging in external layout algorithms. All this library does is create a layout, e.g. assign nodes and edges control points. I don't see a huge point in supporting other layouts in the library given that it's only purpose is to takes nodes and edges and assign points to them.
That's not to say that it's not configurable:
- There are actually three layout types in the library. Two topological layouts, and sugiyama.
- Sugiyama is based off of the original sugiyama paper, but it's probably more genuine to call it a layered algorithm like elk seems to use.
- This layout algorithm itself is customizable. Each step in the process supports its own callback, so you could swap any piece out
- Currently d3-dag has no support for ports, although I'm working on something potentially similar.
- Also, elk seems to allow groups and variable "height" nodes. These are two long standing issues with d3-dag that I might be able to address soon, but currently aren't supported.
- In terms of the straight lines with jumps that elk seems to prefer, that should be configurable with default settings, but different thresholds on the simplex coordinate assignment step, and manually treating the control points a bit differently.
However, maybe I misunderstood what you were asking?
from d3-dag.
Related Issues (20)
- Basic TypeScript type check error HOT 6
- Tips for writing my own layering HOT 2
- General question about node ordering HOT 2
- Specific key order appears to cause decrossOpt to hang HOT 4
- TS: Errors with typescript version 4.9.4 HOT 3
- example code not runable HOT 4
- How to plot a horizonal sugiyama graph HOT 1
- Guidance on Implementing Radial Drawing with d3-dag's Sugiyama Algorithm HOT 3
- Implement Brandes/Kรถpf Coordinate Assignment
- Expand d3-dag to handle multiple paths from parent->child HOT 4
- Dynamic nodeSize? HOT 1
- TS, export SugiNode<NodeDatum = unknown, LinkDatum = unknown> ? HOT 3
- TS Sugestion(?) HOT 4
- Possible linking bug in docs HOT 3
- is it possible to establish node order explicitly in grid? HOT 8
- Support for TypeScript <4.5
- How to extend DagNode in vanilla js? HOT 6
- Error: size of dag to decrossOpt is too large and will likely crash instead of complete, enable "large" grahps to run anyway HOT 9
- Layout direction HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from d3-dag.