在networkx中添加多个有向边

问题描述

我知道这应该是非常基本的,但我不知道如何使用 networkx 做到这一点。我想要做的是创建一个具有 20 个节点的 MultiDiGraph。将有 2 条边将每个节点相互连接,一条远离节点,另一条朝向节点。我无法创建这些边缘。任何帮助将不胜感激。它应该看起来像我附上的图片

解决方法

您可以创建一个图,然后将其转换为有向图。通过这种方式,您可以获得两个方向的边缘:

import networkx as nx

g = nx.Graph()
g.add_edges_from([(0,1),(1,2),3)])
g = g.to_directed()
>>> g.edges
OutEdgeView([(0,0),3),(2,(3,1)])

如果你想生成一个完整的有 n 个节点的有向图:

import networkx as nx

g = nx.complete_graph(4).to_directed()
>>> g.edges
OutEdgeView([(0,(0,2)])