networkx学习笔记2:四种网络模型
2017-02-27 14:26
766 查看
四种网络模型:规则图,ER随机图,WS小世界网络,BA无标度网络
""" 规则图: random_graphs.random_regular_graph(d, n)方法可以生成一个含有n个节点,每个节点有d个邻居节点的规则图 """ RG = nx.random_graphs.random_regular_graph(3, 20) # 随机生成20个节点,每个节点的度都是3,构成一个网络图 pos = nx.spectral_layout(RG) # 图形样式,这里是根据图的拉普拉斯特征向量排列节点的 nx.draw(RG, pos, with_labels=False, node_size=30) # 绘制图形 plt.show() """ ER随机图:以概率p连接N个节点中的每一对节点。 用random_graphs.erdos_renyi_graph(n,p)方法生成一个含有n个节点、以概率p连接的ER随机图 """ ER = nx.random_graphs.erdos_renyi_graph(20, 0.2) # 随机生成20个节点,节点间的连接概率都是0.2 pos = nx.shell_layout(ER) # 图形样式,这里是节点在同心圆上分布 nx.draw(ER, pos, with_labels=False, node_size=30) plt.show() """ WS小世界网络: 用random_graphs.watts_strogatz_graph(n, k, p)方法生成一个含有n个节点、每个节点有k个邻居、以概率p随机化重连边的WS小世界网络。 """ WS = nx.random_graphs.watts_strogatz_graph(20, 4, 0.3) pos = nx.circular_layout(WS) # 图形样式,这里是节点在一个圆环上均匀分布 nx.draw(WS, pos, with_labels=False, node_size=30) plt.show() """ BA无标度网络 用random_graphs.barabasi_albert_graph(n, m)方法生成一个含有n个节点、每次加入m条边的BA无标度网络 """ BA = nx.random_graphs.barabasi_albert_graph(20, 1) pos = nx.spring_layout(BA) # 图形的布局样式,这里是中心放射状 nx.draw(BA, pos, with_labels=False, node_size=30, node_color='black') plt.show()
nx.draw()方法,至少接受一个参数:待绘制的网络G 参数: 运行样式: - `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()方法。
“”“
规则图:
ER随机图:
WS小世界网络:
BA无标度网络:
相关文章推荐
- 复杂网络分析库NetworkX学习笔记3:网络演化模型
- networkx--四种网络模型
- 复杂网络分析库NetworkX学习笔记2
- 【深度学习】笔记4_caffe第二个比较经典的[小图片]识别例子CIFAR_10的运行,网络模型的详解
- 【安全牛学习笔记】OSI网络模型
- networkx学习笔记1:网络图创建
- Fielding的博士论文学习笔记(二)——概念和术语与现实网络模型的对应关系
- TCP/IP网络编程 学习笔记_4 --OSI七层网络模型
- 【深度学习】笔记7: CNN训练Cifar-10技巧 ---如何进行实验,如何进行构建自己的网络模型,提高精度
- Windows网络编程之Select模型学习笔记
- 网络编程学习笔记(一)网络模型及网络要素简介
- NetworkX学习笔记-5-NetworkX中怎样对多个网络赋属性,并根据属性排序
- 计算机网络(自顶向下方法)学习笔记 1.5 协议层次和它们的服务模型
- networkx--四种网络模型
- 【深度学习】笔记6:使用caffe中的CIFAR10网络模型和自己的图片数据训练自己的模型(步骤详解)
- UML学习笔记(2)之组件图,部署图以及动态模型的四种图
- NetworkX学习笔记-5-NetworkX中怎样对多个网络赋属性,并根据属性排序
- 【itercast OSI 七层网络模型 学习笔记】Layer 1 物理层
- 复杂网络分析库NetworkX学习笔记(1):入门
- TensorFlow学习笔记--网络模型的保存和读取