为了账号安全,请及时绑定邮箱和手机立即绑定

NetworkX 二分颜色混合顺序

NetworkX 二分颜色混合顺序

明月笑刀无情 2021-11-09 10:51:25
我使用 NetworkX 创建了一个二部图,并想分别为这两组着色。我使用color()networkX 二分模块中的函数。但是,color dict 中的节点顺序与 B.nodes 中的节点顺序不同,例如:B.nodes = ['a', 1, 2, 3, 4, 'c', 'b']二分。颜色(B)= {'a': 1, 1: 0, 2: 0, 'b': 1, 4: 0, 'c': 1, 3: 0}这会导致图表颜色不正确,如下所示:代码如下:B = nx.Graph()B.add_nodes_from([1,2,3,4], bipartite=0) # Add the node attribute "bipartite"B.add_nodes_from(['a','b','c'], bipartite=1)B.add_edges_from([(1,'a'), (1,'b'), (2,'b'), (2,'c'), (3,'c'), (4,'a')])bottom_nodes, top_nodes = bipartite.sets(B)color = bipartite.color(B)color_list = []for c in color.values():    if c == 0:        color_list.append('b')    else:        color_list.append('r')# Draw bipartite graphpos = dict()color = []pos.update( (n, (1, i)) for i, n in enumerate(bottom_nodes) ) # put nodes from X at x=1pos.update( (n, (2, i)) for i, n in enumerate(top_nodes) ) # put nodes from Y at x=2nx.draw(B, pos=pos, with_labels=True, node_color = color_list)plt.show()有什么我想念的吗?
查看完整描述

1 回答

?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

绘制图形时,您的 color_list 和节点列表(B.nodes)的顺序不同。


color_list

['r', 'b', 'b', 'r', 'b', 'r', 'r']


B.nodes

NodeView((1, 2, 3, 4, 'a', 'b', 'c'))

我使用字典创建了一个 color_list 使用 B.nodes 顺序,并从 B 中的节点列表映射二分集。


B = nx.Graph()

B.add_nodes_from([1,2,3,4], bipartite=0) # Add the node attribute "bipartite"

B.add_nodes_from(['a','b','c'], bipartite=1)

B.add_edges_from([(1,'a'), (1,'b'), (2,'b'), (2,'c'), (3,'c'), (4,'a')])

bottom_nodes, top_nodes = bipartite.sets(B)


color = bipartite.color(B)


color_dict = {0:'b',1:'r'}


color_list = [color_dict[i[1]] for i in B.nodes.data('bipartite')]


# Draw bipartite graph

pos = dict()

color = []

pos.update( (n, (1, i)) for i, n in enumerate(bottom_nodes) ) # put nodes from X at x=1

pos.update( (n, (2, i)) for i, n in enumerate(top_nodes) ) # put nodes from Y at x=2


nx.draw(B, pos=pos, with_labels=True, node_color = color_list)

plt.show()

输出:

//img1.sycdn.imooc.com//6189e2520001048304490319.jpg

查看完整回答
反对 回复 2021-11-09
  • 1 回答
  • 0 关注
  • 199 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信