【前端学习】AntV G6-06 使用图算法

课程链接

图算法 Algorithm | G6 (antgroup.com)

【例子 pageRank】

​​​​​​力导向图布局 | G6 (antgroup.com)

重点部分添加注释

import G6 from '@antv/g6';

const { pageRank } = G6.Algorithm;  // 在此引入 pageRank

const container = document.getElementById('container');
const width = container.scrollWidth;
const height = container.scrollHeight || 500;
const graph = new G6.Graph({
  container: 'container',
  width,
  height,
  layout: {
    type: 'force',
  },
  defaultNode: {
    size: 15,
  },
  defaultEdge: {
    style: {
      endArrow: true
    }
  }
});

fetch('https://gw.alipayobjects.com/os/antvdemo/assets/data/relations.json')
  .then((res) => res.json())
  .then((data) => {

    const pagerankRes = pageRank(data);
    console.log('pagerankRes', pagerankRes)
    // 把节点的重要程度映射到节点大小上,用开根号控制大小差距
    data.nodes.forEach(node => {
      node.size = Math.sqrt(pagerankRes[node.id] * 10000)
    })

    // ...



图算法 Algorithm | G6 (antgroup.com)

算法示例 | G6 (antgroup.com)

重点部分添加注释

// ...

// click the button to run GADDI graph pattern matching
// and the result will be marked with hull
button.addEventListener('click', (e) => {
  const matches = GADDI(
    data,  // 图的数据
    pattern,  // 模式的数据 
    true,  // 是否把图和pattern当做有向图来计算
    undefined,
    undefined,
    'cluster',  // 数据和pattern中的节点分类信息的字段
    'cluster'  // 边分类信息的字段
  );
  
  // matches 是分类信息的结果
  console.log('matches', matches)
  matches.forEach((match, i) => {
    graph.createHull({
      id: `match-${i}`,
      members: match.nodes.map(node => node.id)
    })
  });
  button.innerHTML = `The results are marked with hulls 结果已用轮廓标记`;
  button.disabled = true;
});


GitHub - antvis/algorithm: 常用的图算法 JS 实现,提供给 G6 及 Graphin 用于图分析场景使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值