layout icon indicating copy to clipboard operation
layout copied to clipboard

DagreLayout计算后节点排布问题

Open xingzilong opened this issue 1 year ago • 11 comments

如下图所示,怎么才能使节点“3”和节点“2”在X方向上对齐,是有相关的配置吗? antv

xingzilong avatar Feb 18 '24 09:02 xingzilong

我也想知道

xw-xw12 avatar Mar 15 '24 07:03 xw-xw12

找到了一种方法,rankdir设置为RL,然后把原本节点的连线关系对调一下。就会得到里理想的效果。 (我的本意是只想要优化后的节点的位置,连线关系我还是用我先前的,所以这样也算是达到了要求) 屏幕截图 2024-04-25 1400472

xingzilong avatar Apr 25 '24 06:04 xingzilong

提供个方法,虽然不确定行不行,但可以换ranker试试:
{ ranker: 'network-simplex'  | 'tight-tree' | 'longest-path' } 这是dragre.js内置的三个ranker,@antv/layout也继承了下来

k644606347 avatar Apr 25 '24 06:04 k644606347

提供个方法,虽然不确定行不行,但可以换ranker试试: { ranker: 'network-simplex'  | 'tight-tree' | 'longest-path' } 这是dragre.js内置的三个ranker,@antv/layout也继承了下来

我试过要是尾部节点不汇合可以 但是要汇合的话就不行了

xw-xw12 avatar Apr 25 '24 06:04 xw-xw12

请教一下,ranker这个参数是干什么用的?我尝试着更改了一下,没发生什么别的变化

xingzilong avatar Apr 25 '24 06:04 xingzilong

请教一下,ranker这个参数是干什么用的?我尝试着更改了一下,没发生什么别的变化

@xingzilong 其实就是dagre布局中的三种分层算法,具体可以看下这个: https://www.yuque.com/antv/g6-blog/xxp5nl#2j2gF 有精力的可以去读最初的论文,也有说到:《A Technique for Drawing Directed Graphs》https://graphviz.org/documentation/TSE93.pdf

k644606347 avatar Apr 25 '24 06:04 k644606347

image 这是我之前在掘金上看到的一个文章 但是我根据他的设置没有实现

xw-xw12 avatar Apr 25 '24 06:04 xw-xw12

image 这是我之前在掘金上看到的一个文章 但是我根据他的设置没有实现

@xw-xw12 我也看过这个,也看过dagre源码,说实话看得满痛苦的。。。尤其这个ranker这块,太迷了

k644606347 avatar Apr 25 '24 07:04 k644606347

请教一下,ranker这个参数是干什么用的?我尝试着更改了一下,没发生什么别的变化

@xingzilong 其实就是dagre布局中的三种分层算法,具体可以看下这个: https://www.yuque.com/antv/g6-blog/xxp5nl#2j2gF 有精力的可以去读最初的论文,也有说到:《A Technique for Drawing Directed Graphs》https://graphviz.org/documentation/TSE93.pdf

感谢解答。 我看了一下语雀的文章,我也尝试更改了一下我的程序(我使用的是@antv/[email protected]),ranker的三个值都测试了,优化后的布局并没有任何区别,按照我(阅读语雀文章)的理解,感觉networks simplex算法可以解决我的问题,但事实是并没有。

xingzilong avatar Apr 25 '24 07:04 xingzilong

image 2 和 3 之间加一根线,这种有啥解决方案

liu-collab avatar Apr 29 '24 03:04 liu-collab

image 2 和 3 之间加一根线,这种有啥解决方案

这个就要看你使用的图元的渲染库是什么了,一般都会提供为两个点之间进行连线的API。 我使用@antv/layout主要是使用布局算法,图元的渲染用的别的库。@antv/layout中关于图元操作的API我不是很了解。

xingzilong avatar Apr 29 '24 04:04 xingzilong