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

如何根据我的成员向量用不同的标签绘制我的图表?

如何根据我的成员向量用不同的标签绘制我的图表?

qq_遁去的一_1 2022-01-05 19:42:01
我有一张图,经过一些分类后,我提取了一个像这样的隶属向量:vector membership is : [1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 3, 3, 3, 3]这意味着它的节点号0:4在同一类中。现在我需要绘制一个图表,其中具有相同编号的节点应该具有相同的标签。这里的标签数量是 3。最简单的方法是什么?
查看完整描述

1 回答

?
沧海一幻觉

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

首先,您需要创建一个 Graph,其中有一个包含该节点标签的属性


import matplotlib.pyplot as plt

import networkx as nx


member_labels = [1, 1, 1, 1, 1, 2, 1, 2, 2, 2, 3, 3, 3, 3]

node_ids = list(range(len(member_labels)))


node_label_dict = dict(zip(node_ids, member_labels))


G = nx.Graph()

G.add_nodes_from(node_ids)

nx.set_node_attributes(G, node_label_dict, 'label')

所以现在您的 Graph 具有以下节点和属性


print(G.nodes(data=True))

#NodeDataView({0: {'label': 1}, 1: {'label': 1}, 2: {'label': 1}, 3: {'label': 1}, 4: {'label': 1}, 5: {'label': 2}, 6: {'label': 1}, 7: {'label': 2}, 8: {'label': 2}, 9: {'label': 2}, 10: {'label': 3}, 11: {'label': 3}, 12: {'label': 3}, 13: {'label': 3}})

现在你只需要绘制节点和标签


pos=nx.nx.spring_layout(G)

nx.nx.draw_networkx_nodes(G, pos)

更新


# Fixed the variable name

labels = nx.nx.draw_networkx_labels(G,pos, labels=node_label_dict)

//img1.sycdn.imooc.com//61d584280001f37d03870250.jpg

查看完整回答
反对 回复 2022-01-05
  • 1 回答
  • 0 关注
  • 114 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号