Dagre-d3 is the best solution that I found:
To minimize line crossings, you probably need a layered digraph layout. Just google that phrase.
For anyone else who comes across this, here's another possible solution: (see the "Directed Graph with downward-pointing edges" example)
It can also be plugged into d3.js and used in place of the force layout.
- Graph with auto layout using d3 (a tree with multiple parent nodes)
- D3 Graph Layout - Tree Structure With multiple Parent
- Can a Child node have multiple Parent nodes in Collapsible Force Layout using D3
- D3 Tree Layout Separation Between Nodes using NodeSize
- Simple graph of nodes and links without using force layout
- How can I show a graph using d3 force layout with initial positions set and no movement at all?
- D3 Tree layout visualization - Inherit child with multiple parents
- D3 force layout graph with nodes positioned in a grid
- how to generate a network graph with edge weight using D3.js force layout
- Select all the paths and parent nodes of a child node in tree layout
- Family Tree with multiple parents using D3, VX & React
- D3 adapt force layout for tree structure with additional parent and sibling paths
- D3: Directional graph similar to tree layout but with back links
- Easiest way to select parent nodes multiple parents up in the tree in D3
- Compound nodes with multiple parent in cytoscape.js
- D3.js network graph using force-directed layout and rectangles for nodes
- Using Drop-down menu with D3 force layout graph
- Using Multiple Link Types in D3 Tree Layout
- Can't call force.tick() from a force graph with a tree layout
- add nodes dynamically to leaf node in D3.js using Tree layout v4 (version 4)
- Tree with no child and no parent using d3
- Using d3js, how do I use the tree layout to visually place child nodes within their parent?
- How do I create a D3 graph with multiple time series already in variables (i.e. not using d3.tsv())?
- D3 SVG Tree Graph with different symbols for nodes
- Create jsTree from D3 Tree Layout with toggled nodes
- Using D3 loaded with json file, How can get parent nodes value from json file?
- how to make child nodes of tree layout collapsing into parent node when clicked
- d3.js Map (<svg>) Auto Fit into Parent Container and Resize with Window
- Drawing multiple edges between two nodes with d3
- How do I create a tree layout using JSON data in d3.v4 - without stratify()
More Query from same tag
- d3.select by attribute value
- d3.js v4 wacky link transition in collapsible tree example
- Parse csv as object with extra property
- How do I use JSON and return data with D3
- Cannot click div when it overlays clickable d3 elements
- Created A Bar Chart But Height Is Not Reciprocating Changes
- why does C3 chart does not work when parameter is provided as String?
- Creating multiple lines using json file with coordinates in d3.js
- I can't get d3 transition to work with requestAnimationFrame
- dc.js error: d3.time is undefined
- issues with Raphaël and removing objects within svg
- D3 bar chart axis not scaling correctly
- Creating scatter plot with D3.js
- How to load JSON to D3 in Tree Diagram
- How to change the size of D3 nodes onclick
- D3.js:Tracking user interaction with svg in GA
- d3.js using .attr() after each()?
- How can I perform this d3.js magic (Grouped Bar Chart) with JSON rather than CSV?
- Drawing A square Matrix using D3.js
- How to remove the initial transition in d3.js tree
- meteor piechart doesn't show up completely
- SVG curve to many small straight lines
- Integrating Angular with D3 library
- create values instead of random data in d3.js
- D3: Multi-Series chart not working with last version
- D3 data not showing all the elements
- Change checkbox status on click is not being displayed
- Mouseover in a scatterplot of a second svg in D3
- d3 svg to fill screen