使用networkx在python中绘制无向图

时间:2014-12-01 21:27:25

标签: python graph networkx

我正在使用networkx在python中绘制图形。但是,我的输出太密集了。有没有办法稀疏图表?下面是我在python.Thanks中的命令

    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()

sample graph

2 个答案:

答案 0 :(得分:1)

您也可以通过Graphviz(我更喜欢这个)或PyDot尝试PyGraphviz

如果您对发布就绪结果感兴趣,可以使用工具链networkx - > pydot + dot - > dot2tex + dot - > dot2texi.sty - > TikZ。您可以使用nx2tikz直接导出到TikZ而不是这个脆弱的工具链(我已经写过它,所以我有偏见)并使用相对较强的图形布局算法最近添加到TikZ

答案 1 :(得分:0)

在我查看文档中的一些信息之后:http://networkx.github.io/documentation/latest/reference/drawing.html#module-networkx.drawing.layout

我将布局格式更改为

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

它有效! enter image description here