这两天因为有个想法,想用NetworkX跑一跑看看情况,但是在权重上犯了糊涂。

NetworkX添加带有权重的边很简单,只需要以三个元素的元组(a, b, w)来表示就可以了,其中ab代表节点a和b——这两个元素合在一起就代表两个节点连接的边,w则代表权重。

我想生成一个BA网络,然后对每条边随机赋予边权重。生成BA网络很简单,一个命令就搞定。但是怎么往里面加权重呢?琢磨了半天才发现可以这样做:

G=nx.Graph()

for u, v in nx.barabasi_albert_graph(10,2,seed=1).edges():

G.add_edge(u,v,weight=random.uniform(0,0.4))

解决赋权重后,怎么提取权重做计算和画图呢?NetworkX提供了一个命令get_edge_data来获取其权重,但是是以字典的形式来表示的:{'weight': 0.3232300003}

我就用了个笨方法,把这个字典中的value值提取出来再来用:

pos=nx.spring_layout(G,iterations=20)

edgewidth=[]

for (u,v,d) in G.edges(data=True):

edgewidth.append(round(G.get_edge_data(u,v).values()[0]*20,2))

#这里因为权重赋值太小,生成图的话边会很细,而且不容易分辨,所以我乘以20,如果做计算的话,这个20得去掉

接下来我用这个edgewidth作为边的宽度来画图,效果如下:

nx.draw_networkx_edges(G,pos,width=edgewidth) #奇怪的是:edgewidth应该是一个列表,为什么可以直接拿来用呢?Python怎么判断哪个边用的是哪个权重值?

nx.draw_networkx_nodes(G,pos)

plt.show()

PS:后来发现这样写代码,如果节点比较多的时候会比较慢,还是把前面的句子拆开来写

转载本文请联系原作者获取授权,同时请注明本文来自胡海华科学网博客。

链接地址:http://blog.sciencenet.cn/blog-243747-374619.html

上一篇:NetworkX实现2:超大网络数据处理变通

下一篇:“我爸是李刚”事件中的某令人心寒的细节

python networkx 边权重_科学网—NetworkX:关于边的权重及其画图 - 胡海华的博文相关推荐

  1. python社会网络分析教授_科学网—python 社会网络分析工具之networkx - 郗强的博文...

    1.networkx 2.igraph 3.SNAP 1.networkx NetworkX是一个用Python语言开发的图论与复杂网络建模工具,内置了常用的图与复杂网络分析算法,可以方便的进行复杂网 ...

  2. python sklearn 梯度下降法_科学网—Python_机器学习_总结4:随机梯度下降算法 - 李军的博文...

    =============================================================== 总结如下: 1.随机梯度下降算法可以看成是梯度下降算法的近似,但通常它能 ...

  3. python做社会网络分析_科学网-python 社会网络分析工具之igraph-郗强的博文

    1.networkx 2.igraph 3.SNAP 2.igraph igraph是免费的复杂网络(graphs)处理包,可以处理百万级节点的网络(取决于机器内存).igraph提供了R和C语言程序 ...

  4. python 读grid 数据_科学网—Python_机器学习_总结14:Grid search - 李军的博文

    机器学习中存在两类参数:通过训练数据学习得到的参数:---可认为是辨识得到的参数,例如模型系数: 在学习算法中单独需要优化的参数--超参.调优参数:---算法自身的系数,例如决策树的深度参数: Gri ...

  5. python频次统计图_科学网—Python小例:统计文本中单词出现的频次 - 康建的博文...

    import re zen=''' The Zen of Python, by Tim Peters Beautiful is better than ugly. Explicit is better ...

  6. python对数运算符号_科学网—Python中算数运算符之注意及np.logspace - 张伟的博文...

    (一)算数运算符 数字2 是一个整数的例子. 长整数 不过是大一些的整数. 3.23和52.3E-4是浮点数的例子.E标记表示10的幂.在这里,52.3E-4表示52.3 * 10-4. (-5+4j ...

  7. python word模板 图_科学网—Python绘制可插入Word的高清矢量图(SVG转EMF) - 任晓东的博文...

    Python具有强大的绘图功能.在科学论文中通常需要矢量图,而且如果能方便的插入到word中更好.Python中自带的绘图库matplotlib可以将图保存成svg格式,但是我通常喜欢使用emf的矢量 ...

  8. python视频网站分类_科学网—爬取网站视频简单方法之一:python的you-get模块使用方法 - 周朝宪的博文...

    目的:网站有海量的视频(包括讲座.电影电视剧等),用python语言的you-get模块爬下来 1.安装you-get模块 在pycharm的terminal下安装.pip install you-g ...

  9. python读取tiff影像_科学网—利用python GDAL库读写geotiff格式的遥感影像方法 - 张伟的博文...

    (1)利用python GDAL库读写geotiff格式的遥感影像方法,具有很好的参考价值,不错! from osgeo import gdal import numpy as np def read ...

最新文章

  1. python 修改字符串 循环_python – 模式匹配并用if else循环替换字符串
  2. 0-1背包问题(物品不可分割)
  3. document.createelement如何绑定点击事件_番外篇-EXCEL如何使用宏(VBA)
  4. springboot 自定义注解开发
  5. 绿幕通通扔掉 ੧ᐛ੭ | 谷歌AI实时「抠」背景
  6. SSMS 2005 连接 SQL SERVER 2008问题
  7. Android一帧一帧的动画
  8. R语言安装包出现的问题及解决方案
  9. PDF的图片怎么提取?这两种方法值得收藏
  10. 计算机电脑键盘英语,知识整理:计算机键盘指法练习(英语+数字)
  11. mysql授权用户权限能用正则的形式_mysql创建用户及受权
  12. 深度学习的兴起与流行原因.
  13. C语言入门,编写程序,输出两个整数中的较大值。
  14. 绘制花朵Flower
  15. 从两张Excel表格中筛选相同的值
  16. vsto画箱体图 箱线图 xlboxwhisker
  17. BFGS(Broyden-Fletcher-Goldfarb-Shanno)
  18. java怎么实现按键音_实例:使用Javascript制作声音按钮
  19. 电子信息工程考研专业c语言,2018电子信息工程考研方向有哪些
  20. 终于好了,自动生成支付宝自定义收款码

热门文章

  1. Revit中创建基于线的砌体墙及【快速砌体排砖】
  2. snmp中mib文件解析
  3. php入门写法PHP入门基础之php代码写法
  4. pg服务管理 与 psql常用命令
  5. 绝对女神 - Introduction
  6. Beta阶段基于spec评论作品
  7. 软件测试藏宝图中文版
  8. Windows 8安装软件时遇到运行时错误‘339’ MSCOMCTL.ocx或其附件之一未注册
  9. 转贴:网友【原创·教程】 SRT外挂字幕时间轴调整及合并中英文同步字幕制作方法
  10. 部署IIS网站HTTPS访问