Networkx使用指南
绘制网络图基本流程:
- 导入networkx,matplotlib包
- 建立网络
- 绘制网络 nx.draw()
- 建立布局 pos = nx.spring_layout美化作用
最基本画图程序import import networkx as nx #导入networkx包
import matplotlib.pyplot as plt
G = nx.random_graphs.barabasi_albert_graph(100,1) #生成一个BA无标度网络G
nx.draw(G) #绘制网络G
plt.savefig("ba.png") #输出方式1: 将图像存为一个png格式的图片文件
plt.show() #输出方式2: 在窗口中显示这幅图像
networkx 提供画图的函数有:
draw(G,[pos,ax,hold])
draw_networkx(G,[pos,with_labels])
draw_networkx_nodes(G,pos,[nodelist])
绘制网络G的节点图draw_networkx_edges(G,pos[edgelist])
绘制网络G的边图draw_networkx_edge_labels(G, pos[, ...])
绘制网络G的边图,边有label
---有layout 布局画图函数的分界线---draw_circular(G, **kwargs)
Draw the graph G with a circular layout.draw_random(G, **kwargs)
Draw the graph G with a random layout.draw_spectral(G, **kwargs)
Draw the graph G with a spectral layout.draw_spring(G, **kwargs)
Draw the graph G with a spring layout.draw_shell(G, **kwargs)
Draw networkx graph with shell layout.draw_graphviz(G[, prog])
Draw networkx graph with graphviz layout.
networkx 画图参数:
node_size
: 指定节点的尺寸大小(默认是300,单位未知,就是上图中那么大的点)node_color
: 指定节点的颜色 (默认是红色,可以用字符串简单标识颜色,例如'r'为红色,'b'为绿色等,具体可查看手册),用“数据字典”赋值的时候必须对字典取值(.values())后再赋值node_shape
: 节点的形状(默认是圆形,用字符串'o'标识,具体可查看手册)alpha
: 透明度 (默认是1.0,不透明,0为完全透明)width
: 边的宽度 (默认为1.0)edge_colo
r: 边的颜色(默认为黑色)style
: 边的样式(默认为实现,可选:solid|dashed|dotted,dashdot
)with_labels
: 节点是否带标签(默认为True)font_size
: 节点标签字体大小 (默认为12)font_color
: 节点标签字体颜色(默认为黑色)pos(dictionary, optional)
: A dictionary with nodes as keys and positions as values.If not specified a spring layout positioning will be computed.
布局指定节点排列形式
circular_layout
:节点在一个圆环上均匀分布random_layout
:节点随机分布shell_layout
:节点在同心圆上分布spring_layout
: 用Fruchterman-Reingold算法排列节点spectral_layout
:根据图的拉普拉斯特征向量排列节
布局也可用pos参数指定,例如,nx.draw(G, pos = spring_layout(G))
这样指定了networkx上以中心放射状分布.
其中:spring_layout需要进行计算,拥有以下参数:
pos = nx.spring_layout(G,iterations=200)
k
controls the distance between the nodes and varies between 0 and 1iterations
is the number of times simulated annealing is run- default k =0.1 and iterations=50
力引导布局(Force-directed Layout)
力引导布局最早由Peter Eades在1984年的“启发式画图算法”一文中提出,目的是减少布局中边的交叉,尽量保持边的长度一致。此方法借用弹簧模型模拟布局过程:用弹簧模拟两个点之间的关系,受到弹力的作用后,过近的点会被弹开而过远的点被拉近;通过不断的迭代,整个布局达到动态平衡,趋于稳定。其后,“力引导”的概念被提出,演化成力引导布局算法FR(Fruchterman-Reingold算法)——丰富两点之间的物理模型,加入点之间的静电力,通过计算系统的总能量并使得能量最小化,从而达到布局的目的。这种改进的能量模型,可看成弹簧模型的一般化。
参考:https://blog.csdn.net/gdp12315_gu/article/details/48351589
Random Geometric Graph
画随机几何图,找出中心节点并按路径长度染色
import networkx as nx
import matplotlib.pyplot as pltG=nx.random_geometric_graph(200,0.125)
# position is stored as node attribute data for random_geometric_graph
#`random_geometric_graph`(*n*, *radius*, *dim=2*, *pos=None*)[]
#如果两点之间的距离小于redius则相连,建立边
pos=nx.get_node_attributes(G,'pos')# find node near center (0.5,0.5)
dmin=1
ncenter=0
for n in pos:x,y=pos[n]d=(x-0.5)**2+(y-0.5)**2if d<dmin:ncenter=ndmin=d# color by path length from node near center
p=nx.single_source_shortest_path_length(G,ncenter)plt.figure(figsize=(8,8))
nx.draw_networkx_edges(G,pos,nodelist=[ncenter],alpha=0.4)
nx.draw_networkx_nodes(G,pos,nodelist=p.keys(),node_size=80,node_color=p.values(),cmap=plt.cm.Reds_r)plt.xlim(-0.05,1.05)
plt.ylim(-0.05,1.05)
plt.axis('off')
plt.savefig('random_geometric_graph.png')
plt.show()
Networkx使用指南相关推荐
- 一文读懂Python复杂网络分析库networkx | CSDN博文精选
作者 | yyl424525 来源 | CSDN博客 文章目录 1. 简介 安装 支持四种图 绘制网络图基本流程 2. Graph-无向图 节点 边 属性 有向图和无向图互转 3. DiGraph-有 ...
- 呆萌的图模型学习——图基本信息 Networkx基本操作(二)
Networkx是python常用的处理图模型的工具包,可以方便的处理图模型: Github项目主页:https://github.com/networkx/networkx 官网基本教程:https ...
- 【Python】如何在Windows操作系统下安装Python和Networkx
Networkx是一套基于Python的多种网络构造库.因为之前没有学过Python,因此一点点上手,这一篇讲一讲如何在Windows环境下安装Python2.7和Networkx. 首先要澄清一下, ...
- python语言适合哪些领域的计算问题数据处理和文本挖掘_R和Python中文本挖掘8大入门指南...
你希望学习文本挖掘,却发现大多数教程难度跨度很大?或者说你找不到心仪的数据集? 本文将会通过 8 个小贴士帮助你走进文本挖掘之门. 对文本保持好奇 在数据科学世界中,凡事的第一步都是"感到好 ...
- 如何安装python_怎么在Windows操作系统下安装Python和Networkx
Networkx是一套基于Python的多种网络构造库.因为之前没有学过Python,因此一点点上手,这一篇讲一讲如何在Windows环境下安装Python2.7和Networkx. 首先要澄清一下, ...
- 深度学习服务器装机指南
深度学习服务器装机指南(TITAN V显卡) 基本配置: 系统:ubuntu 16.04 显卡:TITAN V 安装xfce图形界面替换ubuntu自带界面 1.1离线安装 (1)通过apt-get ...
- Rasa中文聊天机器人开发指南(1):入门篇
文章目录 1. Rasa简介与安装 1.1 Rasa简介 1.2 Rasa安装(v1.9.4) 1.1 Ubuntu 16.04环境 1.2 Windows10环境 2. Rasa使用--构建简单聊天 ...
- 超详细中文预训练模型ERNIE使用指南-源码
作者 | 高开远,上海交通大学,自然语言处理研究方向 最近在工作上处理的都是中文语料,也尝试了一些最近放出来的预训练模型(ERNIE,BERT-CHINESE,WWM-BERT-CHINESE),比对 ...
- 入门指南目录页 -PaddlePaddle 飞桨 入门指南 FAQ合集-深度学习问题
入门指南目录页 -PaddlePaddle 飞桨 入门指南 FAQ合集 GT_Zhang关注 0.1012019.08.01 18:43:34字数 1,874阅读 795 Hi,欢迎各位来自Paddl ...
最新文章
- linux上安装pycharm
- MIME文件类型格式--汇总
- MongonDB 知识
- BZOJ2208 [Jsoi2010]连通数
- 虚拟机上怎么配置mysql数据库_Linux虚拟机下安装配置MySQL
- 解决在待办任务菜单中都会抛出异常,由于definitionId=undefined导致的问题
- Python 异常后变量的赋值
- The requested lisk key xxx could not be resolved as a collection type.
- Ubuntu 12.04重启后丢失resolv.conf问题
- 匆匆的一瞥,错过了一份正确的BIOS……,安装X64系统时错刷BIOS的彻底死机过程以及解决方法...
- 200以内的质数(python)
- SQL经典50查询语句案例_3(查询所有同学的学号、姓名、选课数、总成绩)
- [云原生专题-24]:K8S - Kubernetes(K8S)Master集群构建与安装过程详细解读 - 初始控制节点的安装
- sdp ddp内存怎么分_3600超到4266,阿斯加特洛极W3内存超频记录
- Wordpress 网站运维 | HTTPS安全证书绑定
- dstwo linux n64,次世代?论坛惊现NDS用N64模拟器正在开发?
- 天风非银: 券商结算基金的现状和潜力
- Elasticsearch 8 正式发布 新特性来了
- 毕业论文参考文献格式CSL的生成(有鱼也有渔)
- 获取日期(昨天、今天、本周第一天和最后一天、本月第一天和最后一天、本年第一天和最后一天)