【发布时间】:2020-01-17 22:10:26
【问题描述】:
对于networkx和多重图,如何选择所有具有给定键值的边?
例如,如何使用key==2 选择所有边?
import networkx as nx
G=nx.MultiDiGraph()
G.add_edge(1,2,key=0)
G.add_edge(1,2,key=1)
G.add_edge(1,2,key=2)
G.add_edge(2,3,key=0)
G.add_edge(2,3,key=1)
G.add_edge(2,3,key=2)
G.add_edge(3,4,key=0)
G.add_edge(3,5,key=1)
G.add_edge(3,6,key=2)
#For Example:
#edges with key=2
#(1,2)
#(2,3)
#(3,6)
#Nodes linked to edges with key=2
#1,2,3,6
搜索后,我正在使用 avaris 在主题上提出的解决方案: What is the correct graph data structure to differentiate between nodes with the same name?
但我想可能有更直接的解决方案。
很抱歉没有在我的第一个条目中添加代码示例。
【问题讨论】:
-
你能添加一些代码来创建一个简单的多重图吗?然后给出一个非常具体的例子来说明你要选择什么?
-
感谢您的建议。我添加一个简单的例子。
-
你的应用也是二分图吗?
-
在我的应用程序中,该图并不完全是二分的。我有两个主要的大图。其中一个是二分的(事实上,如果这个概念存在,它实际上是三分的),但另一个不是。三元图用于补全其他主图的边信息。除了过滤之外,它对我绘制图形非常有用,但由于它是 MultiDiGraph,我应该使用 graphviz。不幸的是,我是 python 新手,我发现安装它非常复杂。所以现在我专注于在图表上完成和排序信息。