npm 包 d3-sankey-circular 使用教程

阅读时长 10 分钟读完

d3-sankey-circular 是一个基于 D3.js 的 npm 包,用于创建环形桑基图。本文将详细介绍如何使用这个包,以及一些实际应用的案例。

1. 安装

使用 d3-sankey-circular 前,需要先安装 D3.js。然后在项目根目录下通过 npm 安装 d3-sankey-circular:

如果是在浏览器环境中使用,先引入 D3.js 和 d3-sankey-circular:

2. 使用

2.1 创建环形桑基图

创建环形桑基图需要先创建一个 SVG 容器,然后在容器中添加环形桑基图。

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

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

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

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

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

以上代码会在 id 为 svg-container 的 div 中创建一个 500x500 的 SVG 容器,并在容器中创建一个环形桑基图。

2.2 环形桑基图选项

d3-sankey-circular 支持多种选项,可以通过链式调用方法进行设置。以下是一些常用选项的介绍:

2.2.1 size([width, height])

设置环形桑基图的尺寸,width 和 height 分别表示宽度和高度。默认为 [960, 500]。

2.2.2 nodePadding([padding])

设置节点之间的间距。padding 表示节点之间的间距。默认为 8。

2.2.3 linkSort([sort])

设置连接的排序方法。sort 表示排序方法。默认为 null,即不排序。

2.2.4 alignLinkCircular()

将连接对齐在圆形环上。沿圆形将节点排列成环形扇形,在连接上绘制曲线。

2.2.5 linkPath()

计算连接的路径。此选项将在绘制时用到。

2.3 可视化节点和连接

在 SVG 容器中添加矩形表示节点,添加路径表示连接。

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

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

以上代码会将节点表示为灰色矩形,连接表示为黑色线条。

3. 实际应用

以下是一个实际应用的例子,使用 d3-sankey-circular 绘制了一张环形桑基图,表示各区域电力消耗比例。

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

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

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

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

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

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

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

该代码会创建一个圆形的环形桑基图,展示各区域电力消耗比例。

结论

在本文中,我们学习了如何使用 d3-sankey-circular 绘制环形桑基图。我们了解到如何使用选项自定义环形桑基图,并通过一个实际应用案例展示了 d3-sankey-circular 的使用方法。

可以前往这里查看完整的 d3-sankey-circular 文档。

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

纠错
反馈