带有注释的python构建图

带有注释的python构建图

我想建立一个有向图并订阅边。

import os
import scipy as sc
import pylab
import networkx
import matplotlib.pyplot as plt
from networkx import *
from numpy import *

G=networkx.DiGraph()
R=[('S0','S1'),('S1','S2'),('S1','S7'),('S2','S3'),('S2','S6'),('S3','S4'),('S3','S6'),('S4','S5'),('S5','S6'),('S6','S7'),('S7','S8'),('S7','S5'),('S8','Sk') ]

G.add_edges_from([ (2,3,) ])
G.add_edges_from(R)
networkx.draw_circular(G)

plt.show()
plt.savefig("path.png");


现在我已经完成了。我建立了一个图,但是我想不出如何订阅边。例如,我要标记S0S1边缘,例如"565"等,这将使其更具视觉效果和更具说明性。
提前致谢!

最佳答案

无需一步一步地布置和绘制(networkx.draw_circular(G)),而是可以分别布置和绘制节点,边,节点标签和边标签。这是一个小例子:

import networkx as nx
import matplotlib.pyplot as plt

G=nx.DiGraph()
R=[('S0','S1'),('S1','S2'),('S1','S7'),('S0','S7')]

G.add_edges_from(R)

# Calculate layout and get all positions
pos = nx.circular_layout(G)

# Draw everything
nx.draw_networkx_nodes(G, pos)
nx.draw_networkx_edges(G, pos)
nx.draw_networkx_labels(G, pos)
nx.draw_networkx_edge_labels(G, pos,
    {
        ('S0', 'S1'): 'edge1',
        ('S1', 'S2'): 'edge2',
        ('S1', 'S7'): 'edge3',
        ('S0', 'S7'): 'edge4'
    }
)

plt.axis('off')
plt.savefig("path.png");
plt.show()


有关可以将哪些参数传递给不同图形功能的更多信息,请check the documentation

关于python - 带有注释的python构建图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10266345/

10-12 18:54