简介
plugins.template.maxSpanningForest 是一个 graph 的模板插件,提供了下图展示的一系列效果和功能。深度优先提取图的主干树,并使用 Force Atlas 2 布局算法进行抽取后图的布局。在交互上,添加了以下各类交互,这些都可以通过对这个模版对配置项进行选择是否使用。
交互
鱼眼放大镜。
鼠标进入节点上高亮该节点。
鼠标移出节点时高亮消失。
鼠标进入边时高亮该边。
鼠标移出边时高亮消失。
鼠标右击节点出现菜单。
根据菜单上的选择提取和高亮相关子图。
滚轮放缩图时,节点上的文字根据长度比例显示/隐藏。
安装
在 HTML 中引用文件:
<script src="https://unpkg.com/@antv/g6/build/plugin.template.maxSpanningForest.js"></script>
或在 npm 中引用:
import '@antv/g6/build/plugin.template.maxSpanningForest';
参数
参数 | 说明 | 类型 | 默认值 |
---|---|---|---|
fisheye | 是否使用 fisheye 放大镜。 | number | true |
interactive | 是否开启所有交互。 | boolean | true |
textDisplay | 是否使用 plugins.tool.textDisplay 插件 | boolean | true |
nodeStyle | 未使用 mapper 映射前的节点样式。 | object | { stroke: ‘#696969’, strokeOpacity: 0.4, lineWidth: 1 |
activedNodeStyle | 未使用 mapper 映射前的被高亮的节点样式。 | object | { stroke: ‘#fff’, strokeOpacity: 1, stroke: ‘#6a80aa’, lineWidth: 20 |
edgeStyle | 未使用 mapper 映射前的边样式。 | object | { endArrow: true, stroke: ‘#4F7DAB’, strokeOpacity: 0.65 } |
activedEdgeStyle | 未使用 mapper 映射前的被高亮的边样式。 | object | { endArrow: true, stroke: ‘#4C7295’, strokeOpacity: 1 } |
layoutCfg | 布局的配置项。 | object | { kr: 120, kg: 8.0, prevOverlapping: true, maxIteration: 1000, barnesHut: true, useWorker: true } |
menuCfg | 菜单的配置项。 | object | { lists: [{ html: ‘来源’, callBack: ‘showSource’ }, { html: ‘去向’, callBack: ‘showTargets’ }, { html: ‘来源去向’, callBack: ‘showAll’ }] } |
node_label | 节点上文字的内容和样式。 | function | node_label(model) { return { text: model.id, fill: ‘black’, stroke: ‘#fff’, lineWidth: 2.5 }; } |
使用
实例化插件对象:
const MaxSpanningForestPlugin = G6.Plugins['template.maxSpanningForest'];
const maxSpanningForest = new MaxSpanningForestPlugin({
layoutCfg: {
maxIteration: 600,
kg: 10,
prevOverlapping: true
}
});
在实例化 Graph
时作为插件插入:
const graph = new G6.Graph({
container: 'mountNode',
plugins: [ maxSpanningForest ]
});