npm 包 3d-force-graph 使用教程

阅读时长 8 分钟读完

简介

3d-force-graph 是一款基于 Three.js 和 WebGL 技术的 JavaScript 图形库,它可以通过简单而强大的 API 创建 3D 力导向图,帮助前端开发者展示复杂的关系网络。通过 npm 安装,在 Web 应用中直接引用将大大简化开发过程。

安装

使用 npm 安装 3d-force-graph,只需在命令行中输入如下命令:

引用

在项目中引用 3d-force-graph 的方式有两种:通过 CDN 引用或者本地引用。推荐使用本地引用方式,这样可以避免由于 CDN 变化引起的项目异常。

在 HTML 文件中引用本地的 3d-force-graph 库:

在 JavaScript 代码中调用 3d-force-graph:

使用

数据

使用 3d-force-graph 显示关系网首先需要准备好数据,数据格式一般是 JSON 格式,它包含节点和边两个部分。节点是指网络中的每个实体,而边则是指节点之间的连接。

例如以下数据格式:

-- -------------------- ---- -------
-
  -------- -
    - ----- -- ------- ----- -- --
    - ----- -- ------- ----- -- --
    - ----- -- ------- ----- -- --
    - ----- -- ------- ----- -- --
    - ----- -- ------- ----- -- -
  --
  -------- -
    - --------- -- --------- - --
    - --------- -- --------- - --
    - --------- -- --------- - --
    - --------- -- --------- - --
    - --------- -- --------- - -
  -
-
展开代码

创建 3d-force-graph 实例

创建一个 3d-force-graph 实例非常简单,只需要调用 ForceGraph3D() 方法即可:

设置容器

使用 ForceGraph3D() 方法时可以传入 SVG 容器的 ID 或者 D3 的选择器,例如:

设置数据

设置数据时可以使用 graphData() 方法,例如:

样式

3d-force-graph 提供了一些自定义样式的选项,使得开发者可以根据项目需要定制 3D 力导向图的外观和行为。

设置节点和边的样式:

-- -------------------- ---- -------
--- ----- - --------------
  -------------------------------------
  ---------------------
  --------------- -- ----------- -- ------
  --------------------- -- --- -----------
    --- -------------------------
    --- ------------------------- ------ ---------- --
  -- -- -------
  --------------- -- ------------ -- ------
展开代码

设置节点和边的交互行为,例如修改节点和连接线的大小:

-- -------------------- ---- -------
--- ----- - --------------
  -------------------------------------
  ---------------------
  --------------------- -- -
    ----- --- - --- -----------
      --- -------------------------
      --- ------------------------- ------ ---------- --
    --
    ---------------- -- ---
    ------ ----
  --
  --------------- -- ---------- - --- -- ------
展开代码

交互

3d-force-graph 支持鼠标互动和触摸屏,通过添加事件监听器,您可以在图中添加更多的交互功能,例如设置节点点击时的透明度和旋转视角:

-- -------------------- ---- -------
--- ----- - --------------
  -------------------------------------
  ---------------------
  --------------------- -- --- -----------
    --- -------------------------
    --- ------------------------- ------ ----------- ------------ ----- -------- ---- --
  --
  ----------------- -- -
    ---------------------
      - -- ------- -- ------- -- ------ -- -- --------
      ----- -- ---
      ---- -- ----
    --
    ---------------------- -- ---------
    ---------------- -- ------
  ---
展开代码

示例

-- -------------------- ---- -------
---- --------------------

------- ---------------------------------------------------
------- ------------------------------------------------------------------------
------- --------------------------------------------------------------------

--------
  --- --------- - -
    ------ -
      - --- -------- ----- ----- --- ------ -------- --
      - --- -------- ----- ----- --- ------ -------- --
      - --- -------- ----- ----- --- ------ -------- --
      - --- -------- ----- ----- --- ------ -------- --
      - --- -------- ----- ----- --- ------ -------- -
    --
    ------ -
      - ------- -------- ------- ------- --
      - ------- -------- ------- ------- --
      - ------- -------- ------- ------- --
      - ------- -------- ------- ------- --
      - ------- -------- ------- ------- -
    -
  --

  --- ----- - --------------
    -------------------------------------
    ---------------------
    --------------- -- -----------
    --------------------- -- --- -----------
      --- -------------------------
      --- ------------------------- ------ ---------- --
    --
    --------------- -- -----------
    --------------- -- ---------- - --
    ----------------
    ----------------- -- -
      ---------------------
        - -- ------- -- ------- -- ------ --
        -----
        ----
      --
      ----------------------
      ----------------
    ---
---------
展开代码

以上示例代码将创建节点为红、绿、蓝、黄和紫色,并创建连接它们的链接。当单击节点时,图表会旋转到该节点并扩大节点的大小。

结论

3d-force-graph 可以是一个非常强大而又易于使用的工具,使开发者可以快速构建自己的 3D 力导向图。要利用 3d-force-graph 创建复杂而富有表现力的图形,您需要熟悉 Three.js 和 WebGL 编程技巧。使用这个 npm 包创建你自己的网络图,代码更健壮,更易于维护。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/61723

纠错
反馈

纠错反馈