使用Networkx获取图形结构

时间:2013-01-10 09:31:28

标签: python networkx

我正在使用Networkx构建依赖图。 例如,我有这个结构。

A
 +-B
   +-C
 +-H

AA
 +-BB
   +-CC

我使用Networkx轻松构建

G = nx.DiGraph()

G.add_edge(A,B)
G.add_edge(A,H)
G.add_edge(B,C)

G.add_edge(AA,BB)
G.add_edge(BB,)

(顺便说一下,我不知道如何设置根节点,所以我有一个root = set(),其中我有我的所有根,在这种情况下root =(A))

我的问题是如何通过指定节点来获取所有层次结构?例如,如果我愿意:

 G.successors[A]

它会给我

{A: {B: {C: {} }, H: {} } 

但此刻,如果我这样做

G.successors[A]

它只给了我

{H:{} , B:{} }

哪个是正确的但其余部分在哪里?如果Do G.successors [B]它返回我

{C:{}}

哪个是正确的,但是当我做G.successors [A]时为什么不把它放进去?

另一个问题。 Networksx是否有可能从节点到另一个节点获得“路径”? 例如?

[A,H] or [A,B,C] 

谢谢

1 个答案:

答案 0 :(得分:1)

http://networkx.lanl.gov/reference/algorithms.traversal.html

print nx.dfs_successors(G,'A')

>> {A: [H,B], B:[C]}

我不知道如何生成你在示例中给出的结构..