在 networkx 中添加多条有向边
Adding multiple directed edges in networkx
我知道这应该是非常基本的,但我不知道如何使用 networkx 来做到这一点。我想要做的是创建一个具有 20 个节点的 MultiDiGraph。将有 2 条边将每个节点相互连接,一条远离节点,另一条朝向节点。我无法创建这些边缘。任何帮助将不胜感激。它应该看起来像我附上的图片。
您可以创建一个图,然后将其转换为有向图。通过这种方式,您可以获得两个方向的边缘:
import networkx as nx
g = nx.Graph()
g.add_edges_from([(0, 1), (1, 2), (1, 3)])
g = g.to_directed()
>>> g.edges
OutEdgeView([(0, 1), (1, 0), (1, 2), (1, 3), (2, 1), (3, 1)])
如果要生成n个节点的完整有向图:
import networkx as nx
g = nx.complete_graph(4).to_directed()
>>> g.edges
OutEdgeView([(0, 1), (0, 2), (0, 3), (1, 0), (1, 2), (1, 3), (2, 0), (2, 1), (2, 3), (3, 0), (3, 1), (3, 2)])
我知道这应该是非常基本的,但我不知道如何使用 networkx 来做到这一点。我想要做的是创建一个具有 20 个节点的 MultiDiGraph。将有 2 条边将每个节点相互连接,一条远离节点,另一条朝向节点。我无法创建这些边缘。任何帮助将不胜感激。它应该看起来像我附上的图片。
您可以创建一个图,然后将其转换为有向图。通过这种方式,您可以获得两个方向的边缘:
import networkx as nx
g = nx.Graph()
g.add_edges_from([(0, 1), (1, 2), (1, 3)])
g = g.to_directed()
>>> g.edges
OutEdgeView([(0, 1), (1, 0), (1, 2), (1, 3), (2, 1), (3, 1)])
如果要生成n个节点的完整有向图:
import networkx as nx
g = nx.complete_graph(4).to_directed()
>>> g.edges
OutEdgeView([(0, 1), (0, 2), (0, 3), (1, 0), (1, 2), (1, 3), (2, 0), (2, 1), (2, 3), (3, 0), (3, 1), (3, 2)])