layout icon indicating copy to clipboard operation
layout copied to clipboard

feat: add graphviz layout

Open prgrmrwy opened this issue 7 months ago • 1 comments

prgrmrwy avatar Jul 06 '25 09:07 prgrmrwy

graphviz 布局效果好很多(对比 dagre),要考虑加上么

prgrmrwy avatar Dec 18 '25 11:12 prgrmrwy

graphviz 布局效果好很多(对比 dagre),要考虑加上么

加!有效果对比图吗

yvonneyx avatar Dec 23 '25 06:12 yvonneyx

tl;dr; 是否存在环,对 dagre 的影响很大,可能会导致权重配置不会被严格遵守,对比看 graphviz 可以表现的非常稳定

对比图中,前两个分别是 dagre v1/v2 的效果,相同配置下,效果一致,图三中是相同配置下效果下,graphviz 的表现

算法对比

对比维度 dagre (旧版) & @dagrejs/dagre (新版) graphviz dot
预览效果 image
干预能力详述 有限权重调整 多级对齐方式 边路由控制点 增量更新回调 弹性权重调整 子图独立参数 边约束规则 模拟退火参数
算法类型 Sugiyama 4 步算法: 去环 -> 分层 -> 排序 -> 定位 Sugiyama + 弹性权重优化
层级分配算法 贪心法:局部最优解快速逼近 Default: network-simplex Longest-path 初始化最长路径分配 feasibleTree 构建连通树 Tight-tree 构建紧致树 Network-simple 网络单形算法 支持曲线和控制点 权重优先反馈弧集移除:最小化破坏环的成本 网络单形+加权全局优化 自动优化折线角度 (Orthogonal)
布局速度(100节点) 30-70ms 200ms+
布局紧凑度 相对紧凑、清晰但有长边问题 布局较完美
边交叉率 <10% <5%
核心优点 紧凑布局 增量更新 虚拟节点优化 全局最优解 子图独立 边路由美观
核心缺点 长边过多 边交叉较多 无法精准控制主路径渲染 性能一般 陡峭学习曲线

prgrmrwy avatar Dec 23 '25 07:12 prgrmrwy

效果挺好的,我看你放在 layout-wasm 包下,有时间挪到 layout 下不~

yvonneyx avatar Dec 23 '25 07:12 yvonneyx

效果挺好的,我看你放在 layout-wasm 包下,有时间挪到 layout 下不~

周末可以搞一下

prgrmrwy avatar Dec 23 '25 08:12 prgrmrwy

另,当时不太了解你们分包策略,因为这里用的包确实是 wasm 的,所以就放这个目录了,可以帮忙确认一下是不是挪过去

prgrmrwy avatar Dec 23 '25 08:12 prgrmrwy

另,当时不太了解你们分包策略,因为这里用的包确实是 wasm 的,所以就放这个目录了,可以帮忙确认一下是不是挪过去

另,当时不太了解你们分包策略,因为这里用的包确实是 wasm 的,所以就放这个目录了,可以帮忙确认一下是不是挪过去

嗯嗯晚点看下这个布局的实现。另外本周会补一下贡献文档,晚点贴在评论区~

yvonneyx avatar Dec 23 '25 11:12 yvonneyx

👍

---- 回复的原邮件 ---- | 发件人 | @.> | | 日期 | 2025年12月23日 19:06 | | 收件人 | @.> | | 抄送至 | @.>@.> | | 主题 | Re: [antvis/layout] feat: add graphviz layout (PR #246) | yvonneyx left a comment (antvis/layout#246)

另,当时不太了解你们分包策略,因为这里用的包确实是 wasm 的,所以就放这个目录了,可以帮忙确认一下是不是挪过去

另,当时不太了解你们分包策略,因为这里用的包确实是 wasm 的,所以就放这个目录了,可以帮忙确认一下是不是挪过去

嗯嗯晚点看下这个布局的实现。另外本周会补一下贡献文档,晚点贴在评论区~

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

prgrmrwy avatar Dec 23 '25 11:12 prgrmrwy