使用gojs画出拓扑图,清晰的看出组织人员关系

GoJS 是一个使用 HTML5, SVG 和 JavaScript 构建的图表库,可以用来创建和编辑交互式图表。以下是一个简单的例子,展示如何使用 GoJS 在 GoJS 的模板中创建一个简单的拓扑图。

首先,你需要在你的 HTML 文件中引入 GoJS:




<script src="https://gojs.net/latest/api/go-debug.js" type="text/javascript"></script>

然后,你可以使用以下的 JavaScript 代码来创建一个拓扑图:




function init() {
  // 创建一个 GoJS 图表
  const $ = go.GraphObject.make;  // 创建图表对象的快捷方式
  const myDiagram = $(go.Diagram, "myDiagramDiv");  // 指定图表的 DOM 容器
 
  // 设置图表的模板和属性
  myDiagram.nodeTemplate =
    $(go.Node, "Auto",
      $(go.Shape, "RoundedRectangle", {
        fill: "white", // 节点形状的填充颜色
        strokeWidth: 1, // 节点形状的边框宽度
        portId: "", // 节点的端口名称
        fromLinkable: true, // 是否可以从此节点连接出线
        toLinkable: true // 是否可以连接到此节点的线
      }),
      $(go.TextBlock, { margin: 7, editable: true }, // 文本块,可编辑
        new go.Binding("text")) // 文本绑定到节点的名称属性
    );
 
  myDiagram.linkTemplate =
    $(go.Link,
      { routing: go.Link.Orthogonal, // 线条的路由方式
        corner: 5, // 线条弯曲的角度
        selectionAdornmentTemplate: $(go.Adornment, "Link",
          $(go.Shape, { stroke: "blue", strokeWidth: 2, fill: null }))
      },
      $(go.Shape, { strokeWidth: 1.5, stroke: "#000" }), // 线条的形状和颜色
      $(go.TextBlock, { margin: 20 }, // 文本块
        new go.Binding("text", "text")) // 文本绑定到线条的文本属性
    );
 
  // 向图表中添加节点和连接线
  myDiagram.model = new go.GraphLinksModel(
    [
      { key: "Alpha", text: "Alpha" },
      { key: "Beta", text: "Beta" },
      { key: "Gamma", text: "Gamma" }
    ],
    [
      { from: "Alpha", to: "Beta" },
      { from: "Alpha", to: "Gamma" }
    ]
  );
}

在 HTML 文件中,你需要有一个用于显示图表的容器:




<div id="myDiagramDiv" style="width:500px; height:350px; background-color: #DAE4E0;"></div>
<script>
  window.onload = init;
</script>

这个简单的例子创建了一个包含三个节点和两条连接线的拓扑图。你可以根据需要添加更多的节点和连接。GoJS 提供了丰富的功能和自定义选项,可以用来创建各种复杂的图表和可视化。

评论已关闭

推荐阅读

DDPG 模型解析,附Pytorch完整代码
2024年11月24日
DQN 模型解析,附Pytorch完整代码
2024年11月24日
AIGC实战——Transformer模型
2024年12月01日
Socket TCP 和 UDP 编程基础(Python)
2024年11月30日
python , tcp , udp
如何使用 ChatGPT 进行学术润色?你需要这些指令
2024年12月01日
AI
最新 Python 调用 OpenAi 详细教程实现问答、图像合成、图像理解、语音合成、语音识别(详细教程)
2024年11月24日
ChatGPT 和 DALL·E 2 配合生成故事绘本
2024年12月01日
omegaconf,一个超强的 Python 库!
2024年11月24日
【视觉AIGC识别】误差特征、人脸伪造检测、其他类型假图检测
2024年12月01日
[超级详细]如何在深度学习训练模型过程中使用 GPU 加速
2024年11月29日
Python 物理引擎pymunk最完整教程
2024年11月27日
MediaPipe 人体姿态与手指关键点检测教程
2024年11月27日
深入了解 Taipy:Python 打造 Web 应用的全面教程
2024年11月26日
基于Transformer的时间序列预测模型
2024年11月25日
Python在金融大数据分析中的AI应用(股价分析、量化交易)实战
2024年11月25日
AIGC Gradio系列学习教程之Components
2024年12月01日
Python3 `asyncio` — 异步 I/O,事件循环和并发工具
2024年11月30日
llama-factory SFT系列教程:大模型在自定义数据集 LoRA 训练与部署
2024年12月01日
Python 多线程和多进程用法
2024年11月24日
Python socket详解,全网最全教程
2024年11月27日