您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

networkx笔记:绘制基本网络图

5b51 2022/1/14 8:25:26 python 字数 10339 阅读 848 来源 www.jb51.cc/python

<h1id=\"articleHeader1\"style=\"font-family:\'OpenSans\',\'HelveticaNeue\',Helvetica,Arial,STHeiti,\'MicrosoftYahei\',sans-serif;line-height:1.2;color:rgb(51,51,51);font-size:1.57143

概述

<h1 id="articleHeader1" style="font-family:'Open Sans','Helvetica Neue',Helvetica,Arial,STHeiti,'Microsoft Yahei',sans-serif;line-height:1.2;color:rgb(51,51,51);font-size:1.57143em;">
绘制基本网络图
<p style="color:rgb(51,51);font-family:'Open Sans',sans-serif;font-size:14px;line-height:22.3999996185303px;">
用matplotlib绘制网络图

基本流程:

  networkx  nx             
 matplotlib.pyplot  plt 
G = nx.random_graphs.barabasi_albert_graph(,)   生成一个BA无标度网络G
nx.draw(G)                               
plt.savefig()           输出方式1: 将图像存为一个png格式的图片文件
plt.show()                            输出方式2: 在窗口中显示这幅图像 

函数有:


: 指定节点的尺寸大小(认是300,单位未知,就是上图中那么大的点)
: 指定节点的颜色 (认是红色,可以用字符串简单标识颜色,例如'r'为红色,'b'为绿色等,具体可查看手册),用“数据字典”赋值的时候必须对字典取值(.values())后再赋值
: 节点的形状(认是圆形,用字符串'o'标识,具体可查看手册)
: 透明度 (认是1.0,不透明,0为完全透明)
: 边的宽度 (认为1.0)
: 边的颜色(认为黑色)
: 边的样式(认为实现,可选: solid|dashed|dotted,dashdot)
: 节点是否带标签认为True)
: 节点标签字体大小 (认为12)
: 节点标签字体颜色(认为黑色)
e.g. nx.draw(G,node_size = 30,with_label = False)
绘制节点的尺寸为30,不带标签的网络图。

419_1679@" style="overflow:auto;font-size:.92857em;font-family:Consolas,monospace;line-height:1.3;color:rgb(101,123,131);border:none;background:rgb(246,246);"> = nx.spring_layout

sql">(.())))
pos = nx.spring_layout(G)
 = 

<span class="hljs-keyword" style="color:rgb(133,0);">for com <span class="hljs-keyword" style="color:rgb(133,0);">in <span class="hljs-keyword" style="color:rgb(133,0);">values()) :
<span class="hljs-keyword" style="color:rgb(133,0);">count = <span class="hljs-keyword" style="color:rgb(133,0);">count + <span class="hljs-number" style="color:rgb(42,152);">1.
list_nodes = [nodes <span class="hljs-keyword" style="color:rgb(133,0);">for nodes <span class="hljs-keyword" style="color:rgb(133,0);">partition.keys()
<span class="hljs-keyword" style="color:rgb(133,0);">if <span class="hljs-keyword" style="color:rgb(133,0);">partition[nodes] == com]
nx.draw_networkx_nodes(G,list_nodes,node_size = <span class="hljs-number" style="color:rgb(42,152);">50,node_color = <span class="hljs-keyword" style="color:rgb(133,0);">str(<span class="hljs-keyword" style="color:rgb(133,0);">count / <span class="hljs-keyword" style="color:rgb(133,0);">size))

nx.draw_networkx_edges(<span class="hljs-keyword" style="color:rgb(133,0);">User,with_labels = <span class="hljs-literal">True,alpha=<span class="hljs-number" style="color:rgb(42,152);">0.5 )
plt.<span class="hljs-keyword" style="color:rgb(133,0);">show()

<p style="color:rgb(51,sans-serif;font-size:14px;line-height:22.3999996185303px;">
communit.best_partition 是社区划分方法,算法是根据Vincent D.Blondel 等人于2008提出,是基于modularity optimization的heuristic方法.

partition的结果存在字典数据类型:
<code style="font-size:.92857em;font-family:Consolas,246);">{'1': 0,'3': 1,'2': 0,'5': 1,'4': 0,'6': 0}


单引号里的数据是key,也就是网络中节点编号。

冒号后面的数值,表示网络中节点的编号属于哪个社区。也就是社区标号。如<code style="font-size:.92857em;font-family:Consolas,246);">'6': 0
表示6节点属于0社区

总结

以上是编程之家为你收集整理的networkx笔记:绘制基本网络图全部内容,希望文章能够帮你解决networkx笔记:绘制基本网络图所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶