npm 包 react-sunburst-d3-v4 使用教程

阅读时长 6 分钟读完

简介

React-sunburst-d3-v4 是基于 D3.js 和 React.js 开发的可视化库,用于创建 Sunburst 图表。可以适用于前端数据可视化开发中的数据探索、故事叙述等方面。该库提供了基于 React 的组件封装以及可配置的默认样式,可以快速地集成到 React 项目中。

安装

使用 npm 安装 react-sunburst-d3-v4:

在使用前需要引入 D3.js 和 React.js(可在项目中使用 cdn 的方式引入),例如:

使用

react-sunburst-d3-v4 提供了一个 Sunburst 组件,可以直接引入使用。

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

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

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

Sunburst 组件接收一个 data 属性,表示 Sunburst 图表的数据。数据格式为 D3.js hierarchy 的数据结构,例如:

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

Sunburst 组件也可以传递 width 和 height 属性,分别表示图表的宽度和高度。默认情况下,宽度为 400,高度为 400。

深入

数据格式

Sunburst 图表的数据格式为 D3.js hierarchy 的数据结构。该结构通过 D3.js 的 hierarchy() 方法进行创建,例如:

其中,data 表示需要转换的原始数据,d => d.children 表示遍历数据时使用的 children 访问器函数(如果数据中的子节点不是使用 children 字段表示,需要指定 children 字段的名称)。

对于 hierarchy 的数据结构,每个节点都有以下属性:

  • data: 节点的数据
  • depth: 节点的深度
  • height: 节点的高度(离叶子节点最远的距离)
  • parent: 节点的父节点(如果为根节点则为 null)
  • children: 节点的子节点
  • value: 节点的值(如果没有子节点则为节点数据中的值,如果有子节点则为子节点 value 值的和)

配置项

Sunburst 组件提供了一些属性可以进行配置,例如:

-- -------------------- ---- -------
---------
  -----------
  -----------
  ------------
  ---------------------------------
  ------------------
  ---------------------
  -------------------- -- ------ -------------------
  ------------------
--
  • data: 数据,同上
  • width: 宽度,默认 400
  • height: 高度,默认 400
  • colorScheme: 颜色方案,默认 d3.schemeCategory10
  • excludeRoot: 是否排除根节点,默认 false
  • onClick: 点击事件处理函数,接收参数 (event, data)
  • tooltipContent: 提示框内容,可以是 html 字符串或返回 html 字符串的函数,接收参数 data
  • tooltipDelay: 提示框延迟关闭时间,默认 500 毫秒

更多配置项可以参考源码。

样式定制

Sunburst 组件提供了默认样式,可以通过调整 colorScheme 属性来改变颜色方案。

如果需要自定义样式,可以通过 CSS 进行。对于默认情况下的 Sunburst 组件,每个节点对应一个 SVG 元素,可以通过设置对应的 class 名称来添加样式。例如:

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

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

示例代码

以下是一个完整的示例代码:

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

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

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

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

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

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

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

结语

通过本文,您应

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

纠错
反馈