networkx 模型案例-程序员宅基地

技术标签: python  css  java  机器学习  神经网络  

原文链接: networkx 模型案例

上一篇: BeautifulSoup 使用

下一篇: python html 转 pdf

draw函数参数:
- `node_size`:  指定节点的尺寸大小(默认是300)
- `node_color`:  指定节点的颜色 (默认是红色,可以用字符串简单标识颜色,例如'r'为红色,'b'为绿色等)
- `node_shape`:  节点的形状(默认是圆形,用字符串'o'标识)
- `alpha`: 透明度 (默认是1.0,不透明,0为完全透明)
- `width`: 边的宽度 (默认为1.0)
- `edge_color`: 边的颜色(默认为黑色)
- `style`: 边的样式(默认为实现,可选: solid|dashed|dotted,dashdot)
- `with_labels`: 节点是否带标签(默认为True)
- `font_size`: 节点标签字体大小 (默认为12)
- `font_color`: 节点标签字体颜色(默认为黑色)

运用布局:

circular_layout:节点在一个圆环上均匀分布
random_layout:节点随机分布
shell_layout:节点在同心圆上分布
spring_layout: 用Fruchterman-Reingold算法排列节点(样子类似多中心放射状)
spectral_layout:根据图的拉普拉斯特征向量排列节点

添加文本:

用plt.title()方法可以为图形添加一个标题,该方法接受一个字符串作为参数。

fontsize参数用来指定标题的大小。例如:plt.title("BA Networks", fontsize = 20)。

如果要在任意位置添加文本,则可以采用plt.text()方法。

NetworkX提供了4种常见网络的建模方法,分别是:规则图,ER随机图,WS小世界网络和BA无标度网络。

一. 规则图

规则图差不多是最没有复杂性的一类图,random_graphs.random_regular_graph(d, n)方法可以生成一个含有n个节点,每个节点有d个邻居节点的规则图。

下面一段示例代码,生成了包含20个节点、每个节点有3个邻居的规则图:

import networkx as nx
import matplotlib.pyplot as plt

# regular graphy
# generate a regular graph which has 20 nodes & each node has 3 neghbour nodes.
RG = nx.random_graphs.random_regular_graph(3, 20)
# the spectral layout
pos = nx.spectral_layout(RG)
# draw the regular graphy
nx.draw(RG, pos, with_labels=False, node_size=30)
plt.show()

215235_0IXU_2856757.png


二、 ER 随机图

ER随机图是早期研究得比较多的一类“复杂”网络,模型的基本思想是以概率p连接N个节点中的每一对节点。用random_graphs.erdos_renyi_graph(n,p)方法生成一个含有n个节点、以概率p连接的ER随机图:

import networkx as nx
import matplotlib.pyplot as plt

# erdos renyi graph
# generate a graph which has n=20 nodes, probablity p = 0.2.
ER = nx.random_graphs.erdos_renyi_graph(20, 0.2)
# the shell layout
pos = nx.shell_layout(ER)
nx.draw(ER, pos, with_labels=False, node_size=30)
plt.show()

215320_LIVy_2856757.png

三、 WS 小世界网络

用random_graphs.watts_strogatz_graph(n, k, p)方法生成一个含有n个节点、每个节点有k个邻居、以概率p随机化重连边的WS小世界网络。

下面是一个例子:

import networkx as nx
import matplotlib.pyplot as plt

# WS network

# generate a WS network which has 20 nodes,
# each node has 4 neighbour nodes,
# random reconnection probability was 0.3.
WS = nx.random_graphs.watts_strogatz_graph(20, 4, 0.3)
# circular layout
pos = nx.circular_layout(WS)
nx.draw(WS, pos, with_labels=False, node_size=30)
plt.show()

215347_u7hK_2856757.png

四、 BA 无标度网络

用random_graphs.barabasi_albert_graph(n, m)方法生成一个含有n个节点、每次加入m条边的BA无标度网络。

下面是一个例子:

import networkx as nx
import matplotlib.pyplot as plt

# BA scale-free degree network
# generalize BA network which has 20 nodes, m = 1
BA = nx.random_graphs.barabasi_albert_graph(20, 1)
# spring layout
pos = nx.spring_layout(BA)
nx.draw(BA, pos, with_labels=False, node_size=30)
plt.show()

215417_nlRQ_2856757.png

绘制全连接的n边形

spring

215839_tzt8_2856757.png

shell

215856_epaL_2856757.png

import networkx as nx
import matplotlib.pyplot as plt

g = nx.Graph()
node_cnt = 20
g.add_nodes_from(range(node_cnt))
g.add_edges_from([
    (i, j)
    for j in range(node_cnt)
    for i in range(node_cnt)
    if i != j
])

# nx.draw_spring(g, with_labels=True)
nx.draw_shell(g, with_labels=True)
plt.show()

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_35516360/article/details/122066442

智能推荐

geoserver样式学习,点数据的渲染(一)_<cssparameter name="fill-opacity">1.0</cssparamete-程序员宅基地

文章浏览阅读2.1k次。geoserver样式学习,点数据的渲染(一) .sld文件代码如下: xsi:schemaLocation="http://www.opengis.net/sld StyledLayerDescriptor.xsd" xmlns="http://www.opengis.net/sld" xmlns:ogc="http://www.opengis.net/ogc" _1.0

SVN问题之——org.apache.subversion.javahl.ClientException: Attempted to lock an already-locked dir-程序员宅基地

文章浏览阅读643次。转自:https://blog.csdn.net/a_running_wolf/article/details/50833462版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/a_running_wolf/article/details/50833462一、问题描述..._org.apache.subversion.javahl.clientexception: attempted to lock an already-l

svn迁移git 保留提交记录_svn转git,提交记录-程序员宅基地

文章浏览阅读116次。useradd git #创建名称为git的用户passwd git #git用户对应的密码也为git创建git仓库mkdir /home/git/gitrepocd /home/git/gitrepogit init --bare test.gitchown -R git:git test.git第四步:开始将svn代码做迁移操作,在windows上任意创建一个空文件夹GitTest,作为一个Git本地仓库,用来存放从SVN上迁移过来的代码。第五步:在这个文件中打开Git Bas._svn转git,提交记录

Autoware的MPC源码解析(三)mpc_follower解析:车辆模型介绍_车辆动力学误差方程mpc-程序员宅基地

文章浏览阅读3.6k次,点赞4次,收藏27次。版权声明:本文为博主原创文章,未经博主允许不得转载。源码地址:https://gitlab.com/autowarefoundation/autoware.ai/autoware/wikis/Source-Build如有错误或建议,欢迎提出。在Autoware的mpc源码中使用了三种车辆模型,本篇主要对这三种车辆模型进行解析。1车辆运动学误差模型(no delay)..._车辆动力学误差方程mpc

MMO即时战斗:技能实现_mmo的实时战斗和slg结合-程序员宅基地

文章浏览阅读9.4k次,点赞4次,收藏28次。一、前言 基本所有MMO游戏无论是回合制、策略类、即时战斗等等类型都需要有相应的技能系统,所以技能系统有一定的通用性和可复用性,但每种类型的游戏也会有自己的特点,不过万变不离其宗,本文结合自己参与开发并在公网运营两年以上的两款游戏,分别为一款SLG策略游戏和一款即时战斗类游戏,阐述下技能系统的实现方法,方法并不是最优的,但已经实现并经过外网运营几年时间的检验,相信_mmo的实时战斗和slg结合

yii2 修改及批量修改_yii2 批量修改-程序员宅基地

文章浏览阅读5.5k次。使用model::save()进行修改$user = User::find()-&gt;where(['name'=&gt;'test'])-&gt;one(); //获取name等于test的模型$user-&gt;age = 40; //修改age属性值$user-&gt;save(); //保存直接修改:修改用户test的年龄为40$result = User::m..._yii2 批量修改

随便推点

EC2 连接 RDS_rds 为数据库分配一个公共 ip 地址。vpc 之外的 amazon ec2 实例和其他资源可以连-程序员宅基地

文章浏览阅读667次。EC2 连接 RDS 接下来我们要演练的是如何将 EC2 实例连上 RDS,规格如下 EC2 实例 AMI 版本 : Amazon Linux 2 - amzn2-ami-hvm-2.0.20200904.0-x86_64-gp2 (ami-0b1e534a4ff9019e0)Linux Version: 4.14.193-14..._rds 为数据库分配一个公共 ip 地址。vpc 之外的 amazon ec2 实例和其他资源可以连

计算机视觉-神经网络与BP算法_计算机视觉结合bp神经网络24小时监测工艺及设备-程序员宅基地

文章浏览阅读947次。神经网络定义大量(结构简单、功能接近)的神经元节点按一定体系架构连接成的网状结构。作用分类模式识别连续值预测目标建立输入与输出的映射关系神经元模型定义每个神经元都是一个结构相似的独立单元,它接受前一层传来的数据,并将这些数据的加权输入非线性作用函数中,最后将非线性作用函数的输出结果传递给后一层。非线性函数f称为激活函数。激活函数上图为两种激活函数,分别为sig..._计算机视觉结合bp神经网络24小时监测工艺及设备

java ReplaceAll 以及 分组_java的replace替换第一个分组-程序员宅基地

文章浏览阅读3.5k次。java ReplaceAll 以及 分组java 的replaceAll方法是对整个字符串满足条件的进行替换,可以用正则表达式。比如 String s1="My name is Khan. My name is Bob. My name is Sonoo."; String replaceString=s1.replaceAll("\\s",""); System.out.p..._java的replace替换第一个分组

亲测~Win10开启系统自带Wifi热点步骤_win10命令行 软件控制wifi开关-程序员宅基地

文章浏览阅读1.2w次。本文记录如何用命令行开启Win10自带的wifi热点。1)以管理员身份打开命令提示符,输入“netsh wlan show drivers”,找到“支持的承载网络”一项,如果为“是”,说明电脑支持开启wifi热i点,可继续下面的步骤。2)接着输入“netsh wlan set hostednetwork mode=allow ssid=wifi名称 key=wifi密码”。3)接着输入_win10命令行 软件控制wifi开关

Centos6.8_x86_64安装使用 Informix11.70 数据库_iif.11.70.fc8de.linux-x86_64.taranzhuangbao-程序员宅基地

文章浏览阅读6.1k次。Informix是IBM公司出品的关系数据库管理系统(RDBMS)家族。作为一个集成解决方案,它被定位为作为IBM在线事务处理(OLTP)旗舰级数据服务系统。_iif.11.70.fc8de.linux-x86_64.taranzhuangbao

Android复习练习十一(ListView列表显示使用BaseAdapter以及ListView动态刷新)_android baseadapter getview 动态更新view-程序员宅基地

文章浏览阅读2.7k次。需求:结合SQLite数据库,实现一个取_android baseadapter getview 动态更新view