[Python]用Networkx做各类网络图

近期参加了美赛,队伍选择的题目是跟网络建立有关,因为要呈现网络建立的结果,所以现学了很多画网络图的语句,现在整理如下:

一、图的四种类型

  1. Graph:无向图,不包含重边,
  2. MultiGraph:无向图,可含有重边
  3. DiGraph:有向图,不含重边
  4. MultiDiGraph:有向图,可含重边

二、nx.draw()的用法(设置网络图的形式)

详见nx.draw()的各类参数
2.1图中的样式参数
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: 节点标签字体颜色(默认为黑色)
2.2图中节点的摆放位置
circular_layout:节点在一个圆环上均匀分布
random_layout:节点随机分布
shell_layout:节点在同心圆上分布
spring_layout: 用Fruchterman-Reingold算法排列节点(样子类似多中心放射状)
spectral_layout:根据图的拉普拉斯特征向量排列节点

三、各类图的创建(不带权重)

3.1. 无向图:Graph

#step1:创建空图
import networkx as nx  
G=nx.Graph() #创建什么都没有的空图,图的名称为G
#step2:给上述空图加边
G.add_edges_from([(1,2)]) #此处只增加一条边,边的起点名是1,终点名是2
nx.draw(G,with_labels=True) 
#nx.draw()是画图的语句,with_labels=True 的意思是把节点名显示在图中

import matplotlib.pyplot as plt #画图以及图片展示的包以及语句
plt.show()

这个为添加了一条边的图片展示
当然,我们要使用这个软件肯定是要导入好多边和节点,下面我们多添加几条边

import networkx as nx  
G=nx.Graph() #创建什么都没有的空图,图的名称为G
G.add_edges_from([(1,2),(2,3),(3,4),(4,5)])
#(边的起点,边的终点)
nx.draw(G,with_labels=True)
import matplotlib.pyplot as plt
plt.show()

在这里插入图片描述
下面用列表的方式给图加边

#step1:创建空图
import networkx as nx
G=nx.Graph() #创建什么都没有的空图

#step2:给上述空图加边
start=[1
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值