先上結果:
鼠標指到相關節點后會這樣顯示:
滾輪還可以放大縮小
還可以自定義圖標。
唯一的缺點就是無法在連接線的兩端顯示端口好、兩個節點之間只能有一條線相連。
缺點可以通過補充一個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