在networkx中图形细分和平滑

时间:2014-08-04 19:44:25

标签: networkx

我有一个关键点很少的图表,我想在它们之间添加更多的冗余节点。因此,如果我具有A-> B-> C,我希望得到A-> A0-> A1-> A2-> B-> B0-> B1-B2-> ç

中间节点应位于A-> B和B-> C之间的相同线性边缘上。

看起来该操作被称为subdivision and smoothing。有没有办法使用networkx?

1 个答案:

答案 0 :(得分:1)

如何使用Graph.add_path?

In [1]: import networkx as nx

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

In [3]: G.add_edge('A','B')

In [4]: G.add_path(['A','A0','A1','A2','B'])

In [5]: G.remove_edge('A','B')

In [6]: G.edges()
Out[6]: [('A', 'A0'), ('A0', 'A1'), ('B', 'A2'), ('A1', 'A2')]