在networkx中添加多个有向边

Posted

技术标签:

【中文标题】在networkx中添加多个有向边【英文标题】:Adding multiple directed edges in networkx 【发布时间】:2021-05-05 22:49:38 【问题描述】:

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

【问题讨论】:

【参考方案1】:

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

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中添加多个有向边的主要内容,如果未能解决你的问题,请参考以下文章

根据节点值为networkx中的节点绘制不同的颜色

python 使用networkx绘制带权无向图和带权有向图,以及标注特定路径

在networkx(Python)中获取有向图的根(头)

Cytoscape结合Networkx生成有向图

Cytoscape结合Networkx生成有向图

networkx有向图或二叉树的root根节点,Python