先上结果:
鼠标指到相关节点后会这样显示:
滚轮还可以放大缩小
还可以自定义图标。
唯一的缺点就是无法在连接线的两端显示端口好、两个节点之间只能有一条线相连。
缺点可以通过补充一个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