npm 包 dagre-svg 使用教程
dagre-svg 是一种可以根据输入的 DAG(有向无环图)数据渲染成为 SVG(Scalable Vector Graphics),并可以预设节点和边的样式的 npm 包。它可以提供一个快速且简易的方法来创建交互性强而简洁美观的 DAG 图形。在此处,我们将介绍如何使用 dagre-svg 包,以及如何使用其常见 API。
安装 dagre-svg
首先,需要使用 npm 来全局安装 dagre-svg:
npm install -g dagre-svg
为了使用 dagre-svg,我们还需要安装 d3,lodash 和 graphlib:
npm install d3 lodash graphlib
简单使用
让我们从一个简单的例子开始,使用自定义节点和边的样式,渲染出一张 DAG 图。首先,我们创建一个无向图,如下所示:
-- -------------------- ---- ------- --- ----- - --- ----------------- ------------------ - ------ ----- -- --- ------------------ - ------ -------- ------ --- ------------------ - ------ ----- -- --- ------------------ - ------ ----- -- --- ------------------ ----- ------------------ ----- ------------------ ----- ------------------ -----
接下来,我们可以使用 dagre-svg 的示例样式来显示这个图形:
-- -------------------- ---- ------- --- -- - -------------- --- - - ------------------ --- ------- - -------------------- --- -------- - ------------------------- --- -------- - --- ------------------- --- ------ - ------------------------------- --- --- - ----------------- --- ----- - ---------------- -------- --------------- ----------- ------- ------------------------------------- ----------- - ------ -------------------- ---
在这里,我们使用了 d3,lodash 和 dagre-d3 的工具,以及设置您所需渲染的边和节点的样式。然后,我们声明了一个渲染器,定义了图的布局,在一个 SVG 元素上读取 DAG 图数据,然后将图布局渲染出来。接着,我们还将边和节点设置样式,最终得到一个类似于下面这张图的 DAG 图:
API 参考
在这里,我对一些 DAG 图的常见 API 进行介绍:
rankDir(dir)
定义图形的方向。dir 可以为 “LR”(默认),”RL“,”TB“ 或 ”BT“。
var layout = dagreD3.layout().rankDir('TB');
nodeSep(px)
排列图形时节点间的间距,默认为 50px。
var layout = dagreD3.layout().nodeSep(80);
edgeSep(px)
排列图形时边与其相邻节点的距离,默认为 20px。
var layout = dagreD3.layout().edgeSep(10);
rankSep(px)
排列图形时与同一层级别上的节点的距离,默认为 200px。
var layout = dagreD3.layout().rankSep(100);
marginX(px)
定义图形的左右间距,默认为20px。
var layout = dagreD3.layout().marginX(100);
marginY(px)
定义图形的上下间距,默认为20px。
var layout = dagreD3.layout().marginY(100);
这些选项都可以在 Dagre-d3 布局对象中以使用。比如:
var layout = dagreD3.layout(); // 修改默认节点大小 layout.node(function(node) { return { width: 50, height: 50 }; });
结论
通过使用 dagre-svg 包,我们可以生成交互性强而清新雅致的 DAG 图形,增强了数据的可视化效果,并可以通过配置来满足我们的需求,让我们的数据看起来更加整洁有条理。这个简单的教程带您了解如何使用这个包的基础知识,希望可以对您有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5eedadc0b5cbfe1ea0610d0a