在python中绘制网络链

时间:2018-08-17 20:01:25

标签: python matplotlib graph networkx

我想使用图形和python绘制执行链。我必须在绘图中保留左右,这可以通过networkx和matplotlib吗?

类似这样的事情: enter image description here

我尝试过:

import networkx as nx
import matplotlib.pyplot as plt

g = nx.DiGraph()
g.add_nodes_from([1,2,3,4,5])
g.add_edge(1,3)
g.add_edge(2,3)
g.add_edge(3,5)
g.add_edge(3,4)

nx.draw(g,with_labels=True)
plt.draw()
plt.show()

但我不知道如何声明无序。我有: enter image description here

1 个答案:

答案 0 :(得分:0)

可以使用networkx中的graphviz_layout创建网络链。

安装:

  • pydot 以使用write_dot(G,path)
  • pygraphviz 使用graphviz_layout(g,prog ='dot')

代码:

import matplotlib.pyplot as plt
import networkx as nx


g = nx.DiGraph()
g.add_nodes_from([1,2,3,4,5,6,7])
g.add_edge(1,3)
g.add_edge(2,3)
g.add_edge(3,5)
g.add_edge(3,4)
g.add_edge(4,6)
g.add_edge(5,7)
g.add_edge(4,8)
g.add_edge(5,9)

nx.nx_pydot.write_dot(g,'DiGraph.dot')
pos = nx.drawing.nx_agraph.graphviz_layout(g, prog='dot')
nx.draw(g,pos,with_labels=True)
plt.show()

返回:

Network Chain