#graph #graph-algorithms #force #spatialization

nightly forceatlas2

快速力导向的通用多维图形布局

12 个版本 (6 个破坏性更新)

0.7.0 2024年5月2日
0.6.1 2024年3月22日
0.5.0 2023年6月23日
0.4.1 2023年4月30日
0.1.0 2021年4月3日

#100 in 可视化

每月45次下载

AGPL-3.0-only

105KB
1.5K SLoC

ForceAtlas2 Rust

实现 ForceAtlas2 – 力导向连续图布局算法,用于便于网络可视化(即定位多维图中的节点,以便更易于阅读)

Example graph spacialized with ForceAtlas2-rs

示例

安装 Rustup 并切换到夜间模式

rustup toolchain install nightly && rustup default nightly

克隆仓库

git clone https://framagit.org/ZettaScript/forceatlas2-rs && cd forceatlas2-rs

文件 examples/wot.csv 列出有向图的边,在两列中。

GTK 查看器

交互式查看器。您需要安装 GTK。

cargo run --release -p viz -- examples/wot.csv

绑定

存在一个用于 Python 的绑定,fa2rs

改进

此包先前版本使用手写的 AVX2 代码来加速斥力,速度提高了 16 倍。然而,它仍然是 O(N^2)。现在,斥力的唯一实现使用 Barnes-Hut 算法(四叉树/八叉树,O(NlogN)),这使得任何类型的并行化都变得更加困难(SIMD、多线程、GPU)。一些研究论文描述了并行化四叉树构建的方法,甚至使用 SIMD 或 GPU 来实现它。

许可证

通过 LiberaPay 支持我

GNU AGPL v3,版权所有 2020-2024 Pascal Engélibert (为什么是 Copyleft?)

实现细节灵感来源于

ForceAtlas2 论文在 CC BY 下发布,版权所有 2014 Jacomy 等人。

本程序是免费软件:您可以在自由软件基金会发布的 GNU Affero 通用公共许可证的条款下重新分发和/或修改它,许可证版本为 3。
本程序以希望它能被使用为目的进行分发,但没有任何保证;甚至没有关于其商售性或针对特定目的的适用性的隐含保证。有关更多详细信息,请参阅GNU Affero通用公共许可证。
您应该已经收到了GNU Affero通用公共许可证的副本。如果没有,请参见https://www.gnu.org/licenses/

依赖项

~2–7.5MB
~47K SLoC