antvis / layout

Layout algorithms for graphs.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

DagreLayout计算后节点排布问题

xingzilong opened this issue · comments

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

我也想知道

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

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

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

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

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

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

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

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

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

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

请教一下,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/layout@1.2.13),ranker的三个值都测试了,优化后的布局并没有任何区别,按照我(阅读语雀文章)的理解,感觉networks simplex算法可以解决我的问题,但事实是并没有。

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

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

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