NetworkX:检查两个图的形状是否具有相同的节点属性

时间:2019-08-07 15:07:17

标签: python graph networkx

如果我有两个具有颜色属性的图形:

dags 如何检查两个图形是否具有相同的形状,并且相互连接的颜色相同?节点号无关紧要。

1 个答案:

答案 0 :(得分:0)

您需要使用NetworkX中可用的Graph Isomorphism。您可以检出here

这是is_isomorphic文档中的一个官方示例。您可以here查看它。

import networkx.algorithms.isomorphism as iso
import netoworkx as nx

G1 = nx.DiGraph()
G2 = nx.DiGraph()
nx.add_path(G1, [1,2,3,4], weight=1)
nx.add_path(G2, [10,20,30,40], weight=2)

# This will be used for attribute matching
em = iso.numerical_edge_match('weight', 1)

print(nx.is_isomorphic(G1, G2))  # no weights considered
#Output: True

print(nx.is_isomorphic(G1, G2, edge_match=em)) # match weights
# Output : False