是否可以使用 Networkx 将新节点添加到现有边缘

Is it possible to add a new node to an existing edge using Networkx

我正在尝试使用 python 和 networkx 库来实现新芽游戏。游戏的想法是你从两个顶点开始。玩家从一个顶点到另一个顶点绘制一条边。一个新节点被放置在新创建的边上。游戏的其余细节不是必需的,但我在底部放置了一个 link 以进一步解释它。目前,我首先创建一个节点,然后从起始节点添加一条边到这个新节点。接下来,我将新节点的另一条边添加到终止节点。我的问题是,是否有更简单的方法来完成此操作?比如先画边,然后在这条边上放置一个新的节点。

http://nrich.maths.org/2413

看来你可以使用add_path()功能。

示例:

>>> g = nx.Graph()
>>> g.add_nodes_from( [0,1] )
>>> g.nodes()
[0, 1]
# We have two nodes, zero edges.
# User clicks two vertices, say 0 and 1.
# We add one more node first.
>>> g.add_node(2)
# Then we add the new edges
>>> g.add_path([0,2,1])
>>> g.nodes()
[0, 1, 2]
>>> g.edges()
[(0, 2), (1, 2)]