Python呼叫graphviz繪製結構化圖形網路示例
阿新 • • 發佈:2020-01-09
首先要下載:Graphviz - Graph Visualization Software
安裝完成後將安裝目錄的bin 路徑加到系統路徑中,有時候需要重啟電腦。
然後:
pip install graphviz import graphviz as gz
有向圖
dot = gz.Digraph() dot.node('1','Test1') dot.node('2','Test2') dot.node('3','Test3') dot.node('4','Test4') dot.edges(['12','23','34','24']) dot
無向圖
dot = gz.Graph() dot.node('1','24']) dot
來個隨機點的複雜點的圖
import random dot = gz.Digraph() for i in range(10): dot.node('%s' % i,'Test%s' % i) dot.edges([str(random.randint(10,99)) for i in range(10)]) dot
繪製神經網路簡易圖
def neural_graph(inp=3,hide=(10,),outp=3,inp_label='input',hide_label='hide',outp_label='output',dropout=True,style='h',size='2,1'): """ 繪製簡易神經網路圖(有向圖) :param inp: 輸入神經元個數 :param hide: 隱藏層神經元個數,可迭代陣列 :param outp: 輸出神經元個數 :param inp_label: 輸入名稱顯示 :param hide_label: 隱藏層名稱顯示 :param outp_label: 輸出名稱顯示 :param dropout: 是否全連線 :param style: 水平或垂直顯示, 可選項為 'h','v' :param size: 影象顯示大小 :return: 有向圖 """ dot = gz.Digraph(name='neural network') dot.attr(size=size) if style == 'v': dot.attr(rankdir='LR') def draw(enter,exit,label1,label2): for i in range(enter): for j in range(exit): if dropout: if random.randint(0,max(enter,exit)): dot.edge('%s%s' % (label1,i),'%s%s' % (label2,j)) else: dot.edge('%s%s' % (label1,j)) hide = list(hide) hide.insert(0,inp) hide.append(outp) for index,(i,j) in enumerate(zip(hide[:-1],hide[1:])): if index == 0: draw(i,j,inp_label,hide_label+str(index)) elif index == len(hide) - 2: draw(i,hide_label+str(index-1),outp_label) else: draw(i,hide_label+str(index)) return dot #其他執行方式 #return dot.view()
以上這篇Python呼叫graphviz繪製結構化圖形網路示例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。