如何为生成最小生成树的图的边着色

问题描述

我有一个包含 4 个节点的完整图 G。我需要为生成最小生成树的边缘着色。我怎样才能用 networkx 和 python 做到这一点?

解决方法

networkx.draw 接受一个可选的 edge_color 关键字参数,它允许您指定各个边的颜色。使用 minimum_spanning_tree 函数,我们可以将位于最小生成树内的边着色为红色,否则将其着色为黑色。

代码

import networkx as nx
G = nx.complete_graph(4)

mst = nx.minimum_spanning_tree(G)

edge_colors = ['red' if e in mst.edges else 'black' for e in G.edges]

nx.draw(G,edge_color=edge_colors)

输出

enter image description here