networkX带权图的构建中:添加边,批量添加边,添加带属性的边,以及图形展示

最近在做带权图网络分析这块的工作,发现网络构建中,批量添加带属性值的边这部分比较全面的资料较少,因此根据自己查找的资料和实验,总结该部分内容如下

添加边:

G.add_edge(‘小红’,‘小粉’)

批量添加边:

1.只添加边,不包含属性值

G.add_edges_from([(‘小红’, ‘小黄’), (‘小黄’,‘小黑’)])

也可以直接将元组的列表作为参数

list=[(‘小红’, ‘小黄’), (‘小黄’,‘小黑’)]
G.add_edges_from(list)

2.添加包含属性值的边

首先介绍一个函数

#功能:在图中添加加权边 ebunch_to_add,并指定权重属性
add_weighted_edges_from(ebunch_to_add, weight=‘weight’, **attr)

参数:
ebunch_to_add
列表或容器中给出的每个边都将添加到图表中。边必须以三元组(u,v,w)的形式给出,其中w是一个数字。
weight
要添加的边权重的属性名称
attr
要为所有边添加/更新的边属性。(暂时还没理解啥意思)

另:
批量添加带属性的边(以下三种形式都可以实现):

G.add_weighted_edges_from([(‘小红’,‘小黄’, 7.0), (‘小红’, ‘小青’, 10),(‘小黄’,‘小青’,3)])#元组中的第三个参数默认为weight属性值
G.add_edges_from([(‘小红’,‘小黄’, {‘weight’:7.0}),(‘小红’,‘小青’,{‘weight’:10}),(‘小黄’,‘小青’,{‘weight’:3})])
G.add_edges_from([(‘小红’,‘小黄’), (‘小红’, ‘小青’),(‘小黄’,‘小青’)], weight=10)

在这里插入图片描述

边的属性可以在创建边的时候自己设置,边不止可以设置一种属性,可以设置多个属性(属性名由自己定义)
下面语句在创建三条边的同时,给该图设置了weight属性,并设置了具体的属性值

G.add_edges_from([(‘小红’,‘小黄’, {‘weight’:7.0}),(‘小红’,‘小青’,{‘weight’:10}),(‘小黄’,‘小青’,{‘weight’:3})])

输出显示weight属性的图形如下:
在这里插入图片描述

在此基础上还可以再添加其他属性,如下面语句,给这三条边设置属性score,并给出属性值:

G.add_edges_from([(‘小红’,‘小黄’, {‘score’:70}),(‘小红’,‘小青’,{‘score’:80}),(‘小黄’,‘小青’,{‘score’:90})])

输出显示score属性的图形如下:
在这里插入图片描述

3.修改边的属性值(两种形式):

G.edges[‘小红’, ‘小黄’][‘weight’] =10
G[‘小红’][‘小青’][‘weight’] = 100

再次查看weight属性的图形如下:
在这里插入图片描述

输出某条边的属性:
name = nx.get_edge_attributes(G, ‘score’)
print (name[‘小红’,‘小黄’])
输出结果为:10

完整代码如下给出(直接贴代码格式老出问题,所以直接贴图好了,见谅)
在这里插入图片描述

  • 9
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值