You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

寻求Sigma.js原生Demo适配ForceAtlas2布局的无坐标示例

Sigma.js 结合 ForceAtlas2 无预定义坐标实现方案

当然有不少开发者实现过这类需求,以下是具体的实现思路和示例要点:

  • 核心依赖说明:Sigma.js本身不内置ForceAtlas2布局,需要搭配对应的布局插件——如果是现代ES模块版本的Sigma,使用@sigma/layout-forceatlas2包;若为旧版v1.x,则用sigma.layout.forceAtlas2插件。这类插件会自动完成节点坐标的计算,完全不需要在dataset.json中预先定义x/y字段。

  • 基础实现步骤:

    1. 加载Sigma.js核心库与ForceAtlas2布局插件
    2. 加载仅包含节点(id、label等基础属性)和边的无坐标dataset.json
    3. 初始化Sigma实例并绑定到页面容器
    4. 初始化ForceAtlas2布局并启动,插件会自动计算节点位置并实时渲染
  • 现代ES模块版本代码示例:

    import Sigma from "sigma";
    import { ForceAtlas2 } from "@sigma/layout-forceatlas2";
    
    // 加载无坐标数据集
    const graphData = await fetch("./dataset.json").then(res => res.json());
    
    // 初始化Sigma实例
    const sigma = new Sigma(graphData, document.getElementById("sigma-container"));
    
    // 配置并启动ForceAtlas2布局
    const forceLayout = new ForceAtlas2(sigma, {
      gravity: 1.2,
      repulsiveForce: 15,
      iterationsPerRender: 50, // 控制每帧渲染的迭代次数,平衡性能与流畅度
    });
    forceLayout.start();
    
    // 可选:监听布局停止事件
    sigma.on("stop", () => {
      console.log("ForceAtlas2布局计算完成");
    });
    
  • 旧版Sigma.js(v1.x)实现片段:

    <!-- 先通过script标签加载Sigma和ForceAtlas2插件 -->
    <script src="sigma.min.js"></script>
    <script src="sigma.layout.forceAtlas2.min.js"></script>
    
    <script>
      // 加载数据集
      fetch("./dataset.json")
        .then(res => res.json())
        .then(graphData => {
          const sigma = new sigma({
            graph: graphData,
            container: "sigma-container"
          });
          // 启动ForceAtlas2布局
          sigma.startForceAtlas2({
            gravity: 1,
            repulsion: 10
          });
        });
    </script>
    
  • 注意事项:

    • 确保dataset.json仅包含节点和边的基础结构,不要添加x/y字段,避免干扰布局计算
    • 可根据图的规模调整布局参数:节点数量多的话,适当降低iterationsPerRender提升性能;节点分散过度则增大重力值
    • 布局启动后会持续迭代计算,若需要固定最终位置,可调用forceLayout.stop()方法

内容的提问来源于stack exchange,提问作者Broshi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 11:42:14