npm 包 netmap.js 使用教程

阅读时长 7 分钟读完

netmap.js 是一款基于 D3.js 和 jQuery 的 JavaScript 库,用于创建可视化网络图。它能够帮助开发者快速生成交互式的网络拓扑图,便于帮助用户更直观地理解数据的关联关系。本文将详细介绍 netmap.js 的使用方法,包括安装、配置和常用方法。

安装

在安装 netmap.js 之前,需要先安装 D3.js 和 jQuery。可以通过如下命令进行安装:

然后在项目中引入 netmap.js:

配置

通过下面的代码,可以很方便地创建一个简单的网络图:

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

首先定义了一个 data 对象,它包含了节点(nodes)和边(links)的数组。每个节点和每条边都有一个唯一的标识符(idsourcetarget)以及一些额外的属性(如 text,表示节点或边上显示的文本)。

然后定义了一个空对象 options,没有进行任何设置。最后通过 netmap("#chart", data, options) 创建了一个网络图,它被渲染到 id 为 chart 的元素上。

除了上述的简单配置外,netmap.js 还提供了更丰富的选项,供开发者自定义网络图的样式、交互方式等。下面列举了 netmap.js 支持的选项及其用法。

节点选项

  • nodeSize:节点的大小(像素)。默认值为 30。
  • nodeColor:节点的颜色。可以是 CSS 颜色值或回调函数,该函数接收一个节点对象作为参数,返回节点颜色。默认值为 "#1f77b4"
  • nodeStrokeColor:节点轮廓线的颜色。可以是 CSS 颜色值或回调函数,该函数接收一个节点对象作为参数,返回节点轮廓线颜色。默认值为 "#000"
  • nodeStrokeWidth:节点轮廓线的宽度(像素)。默认值为 1。
  • nodeTooltip:当鼠标悬停在节点上时显示的提示信息。可以是字符串或回调函数,该函数接收一个节点对象作为参数,返回提示信息。

边选项

  • linkColor:边的颜色。可以是 CSS 颜色值或回调函数,该函数接收一个边对象作为参数,返回边颜色。默认值为 "#999"
  • linkStrokeWidth:边的宽度(像素)。可以是数字或回调函数,该函数接收一个边对象作为参数,返回边宽度。默认值为 2。
  • linkOpacity:边的透明度(0~1)。可以是数字或回调函数,该函数接收一个边对象作为参数,返回边透明度。默认值为 0.6。
  • linkTooltip:当鼠标悬停在边上时显示的提示信息。可以是字符串或回调函数,该函数接收一个边对象作为参数,返回提示信息。

整体选项

  • width:网络图的宽度(像素)。默认为父元素的宽度。
  • height:网络图的高度(像素)。默认为父元素的高度。
  • padding:网络图的边距(像素)。可以是数字或一个包含左、右、上、下四个方向边距的数组。默认为 50。
  • charge:电荷强度(在力导向布局中使用)。数字越小,节点会彼此聚集,而数字越大,节点会更分散。默认为 -50。
  • linkDistance:边的长度(在力导向布局中使用)。默认为 100。
  • showLabels:是否显示节点标签。默认为 true
  • showTooltips:是否显示提示信息。默认为 true
  • dragEnabled:是否允许拖拽节点。默认为 false
  • zoomEnabled:是否允许缩放。默认为 true
  • onNodeClick:节点被点击时触发的回调函数,该函数接收一个节点对象作为参数。
  • onNodeHover:节点被悬停时触发的回调函数,该函数接收一个节点对象作为参数。
  • onLinkClick:边被点击时触发的回调函数,该函数接收一个边对象作为参数。
  • onLinkHover:边被悬停时触发的回调函数,该函数接收一个边对象作为参数。
  • onZoomStart:缩放开始时触发的回调函数,该函数没有参数。
  • onZoomEnd:缩放结束时触发的回调函数,该函数没有参数。

示例

下面是一些使用选项的例子,以及相应的效果展示。

连接线虚线样式

节点自定义 HTML

支持拖拽

缩放限制

常用方法

清空网络图

使用 netmap.clear() 方法可以清空当前的网络图。

添加节点和边

使用 netmap.addNode(node)netmap.addLink(link) 可以分别新增节点和边。这两个方法的参数分别是节点对象和边对象,格式与数据集中的节点和边相同。

删除节点和边

使用 netmap.removeNode(node)netmap.removeLink(link) 可以分别删除节点和边。这两个方法的参数为节点对象和边对象。

更新节点和边

使用 netmap.updateNode(node)netmap.updateLink(link) 可以分别更新节点和边的属性。这两个方法的参数为节点对象和边对象,包含要更新的属性,格式与数据集中的节点和边相同。

总结

本文介绍了 npm 包 netmap.js 的基本用法和具体选项,以及常用方法。通过 netmap.js,开发者可以快速构建网络图,用于展示数据之间的关联关系,同时又能够进行交互式的操作,提高用户的体验。希望本文对您有所帮助。

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

纠错
反馈