python3+pyecharts生成网络拓扑图


 

 

先上结果:

鼠标指到相关节点后会这样显示:

 

 

 滚轮还可以放大缩小

还可以自定义图标。

唯一的缺点就是无法在连接线的两端显示端口好、两个节点之间只能有一条线相连。

缺点可以通过补充一个excel端口接线表来补充说明。

上代码:

 1 #!/usr/bin/python
 2 # -*- coding: utf-8 -*-
 3 """
 4   Author:  Linxy -- <592901071@qq.com>
 5   Created: 2017-7-30
 6 """
 7 
 8 
 9 from pyecharts import Graph#引用之前要先pip install pyecharts及相关的支持模块
10 
11 
12 nodes = [{"name": "外网", "symbolSize": 50,'symbol':'image://D://yun.png'},#注意图标的位置要用绝对地址,否则会认不到图片
13          {"name": "防火墙", "symbolSize": 40},#设置节点及节点图标大小
14          {"name": "核心交换", "symbolSize": 50},
15          {"name": "9-A1-1", "symbolSize": 20},
16          {"name": "9-A1-2", "symbolSize": 20},
17          {"name": "9-A1-3", "symbolSize": 20},
18          {"name": "9-A3-1", "symbolSize": 20},
19          {"name": "9-A3-2", "symbolSize": 20},         
20          {"name": "9-A3-3", "symbolSize": 20},]
27 
28 links = [{"source": "防火墙", "target": "外网"},#设置节点连接关系
29          {"source": "防火墙", "target": "核心交换"},
30          {"source": "核心交换", "target": "9-A1-1"},
31          {"source": "核心交换", "target": "9-A1-2"},
32          {"source": "核心交换", "target": "9-A1-3"},
33          {"source": "核心交换", "target": "9-A3-1"},
34          {"source": "核心交换", "target": "9-A3-2"},
35          {"source": "核心交换", "target": "9-A3-3"},]
36 
37 graph = Graph("XXX网络拓扑图",'这里附标题',height=600,width=800)#画布高600宽800
38 graph.add("", nodes, links, repulsion=8000,is_label_show=True)#is_label_show=True表示节点名字为一直显示
39 #graph.show_config()#表示将生成的文件打印出来,我们只要结果的HTML不需要知道代码
40 graph.render(r'./tb.html')#生成html文件并保存到当前路劲下。

 

 pyecharts详细使用教程请移步:

https://github.com/chenjiandongx/pyecharts/blob/master/README.md#%E9%A1%B9%E7%9B%AE%E6%A6%82%E5%86%B5

 

 

 

 

 

 


 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM