实例介绍
graph用例绘图


import React from 'react'; import { Row, Col, Card } from 'antd'; import Graphin, { Utils } from '@antv/graphin'; import { ContextMenu } from '@antv/graphin-components'; import { TagFilled, DeleteFilled, ExpandAltOutlined } from '@ant-design/icons'; import '../App'; // 引入Graphin CSS const { Menu } = ContextMenu; const defSpreingLen = (_edge, source, target) => { /** 默认返回的是 200 的弹簧长度 */ /** 如果你要想要产生聚类的效果,可以考虑 根据边两边节点的度数来动态设置边的初始化长度:度数越小,则边越短 */ const nodeSize = 30; const Sdegree = source.data.layout.degree; const Tdegree = target.data.layout.degree; const minDegree = Math.min(Sdegree, Tdegree); console.log(minDegree < 3 ? nodeSize * 5 : minDegree * nodeSize); return minDegree < 3 ? nodeSize * 5 : minDegree * nodeSize; }; const LargeGraph = () => { const [state, setState] = React.useState({ selected: [], data: Utils.mock(5).circle().graphin(), }); const handleChange = (menuItem, menuData) => { console.log(menuItem, menuData); const count = 4; const expandData = Utils.mock(count).expand([menuData]).type('company').graphin(); setState({ ...state, data: { // 还需要对Node和Edge去重,这里暂不考虑 nodes: [...state.data.nodes, ...expandData.nodes], edges: [...state.data.edges, ...expandData.edges], }, }); }; const { data } = state; return ( <div className="box"> <Graphin data={data} layout={{ type: 'graphin-force', preset: { type: 'concentric', }, animation: true, defSpringLen: defSpreingLen, }} > <ContextMenu bindType="node" style={{ width: 100 }}> <Menu bindType="node" options={[ { key: 'expand', icon: <ExpandAltOutlined />, name: '一度扩散', }, { key: 'tag', icon: <TagFilled />, name: '节点打标', }, { key: 'delete', icon: <DeleteFilled />, name: '节点删除', }, ]} onChange={handleChange} /> </ContextMenu> </Graphin> </div> ) } export default LargeGraph
好例子网口号:伸出你的我的手 — 分享!
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论