如何使用matplotlib或graphviz在networkx中绘制多图

当我将多图numpy邻接矩阵传递给networkx(使用from_numpy_matrix函数),然后尝试使用matplotlib绘制图形时,它会忽略多条边。

我怎样才能让它画出多条边?


Graphviz在绘制平行边缘方面做得很好。 您可以通过编写一个点文件然后使用Graphviz处理(例如下面的neato布局)来将其用于NetworkX。 除了NetworkX之外,您还需要pydot或pygraphviz

In [1]: import networkx as nx

In [2]: G=nx.MultiGraph()

In [3]: G.add_edge(1,2)

In [4]: G.add_edge(1,2)

In [5]: nx.write_dot(G,'multi.dot')

In [6]: !neato -T png multi.dot > multi.png

在NetworkX 1.11及更新的版本上, nx.write_dot无法按照networkx github上的问题工作。 解决方法是使用write_dot

from networkx.drawing.nx_pydot import write_dot

要么

from networkx.drawing.nx_agraph import write_dot

链接地址: http://www.djcxy.com/p/29225.html

上一篇: how to draw multigraph in networkx using matplotlib or graphviz

下一篇: Algorithm for finding minimal cycle basis of planar graph