簡體   English   中英

使用networkx在python中繪制無向圖

[英]Plotting undirected graph in python using networkx

我正在使用networkx在python中繪制圖形。 但是,我的輸出太密集了。 有什么方法可以稀疏圖嗎? 下面是我在python中的命令。

    pos=nx.spring_layout(self.G)
    nx.draw_networkx_nodes(self.G,pos)
    edge_labels=dict([((u,v,),d['weight'])
             for u,v,d in self.G.edges(data=True)])
    nx.draw_networkx_labels(self.G,pos, font_size=20,font_family='sans-serif')
    nx.draw_networkx_edges(self.G,pos)
    plt.axis('off')
    #nx.draw_networkx_labels(self.G,pos, font_size=20,font_family='sans-serif')
    nx.draw_networkx_edge_labels(self.G,pos,edge_labels=edge_labels)
    nx.draw(self.G,pos, edge_cmap=plt.cm.Reds)

    plt.show()

樣本圖

您也可以通過PyDot (我更喜歡這一點)或PyGraphviz嘗試Graphviz

如果您對發布就緒的結果感興趣,可以使用工具鏈networkx > pydot + dot -> dot2tex + dot -> dot2texi.sty > TikZ 除了這個脆弱的工具鏈之外,您還可以使用nx2tikz直接導出到TikZ (我已經編寫了它,所以我有偏見),並且可以使用最近相對於TikZ添加的圖形布局算法。

在我從此處的文檔中檢查了一些信息之后: http : //networkx.github.io/documentation/latest/reference/drawing.html#module-networkx.drawing.layout

我將布局格式更改為

pos=nx.circular_layout(self.G, scale=5)

而且有效! 在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM