目录
本文主要讲解network最后的绘图功能
总述
绘图 | 释义 |
---|---|
draw(G[, pos, ax, hold]) | 用Matplotlib绘制图形G |
draw_networkx(G[, pos, with_labels]) | 使用Matplotlib绘制图形G |
draw_networkx_nodes(G, pos[, nodelist, …]) | 绘制图G的节点 |
draw_networkx_edges(G, pos[, edgelist, …]) | 绘制图形G的边缘 |
draw_networkx_labels(G, pos[, labels, …]) | 在图G上绘制节点标签 |
draw_networkx_edge_labels(G, pos[, …]) | 绘制边缘标签 |
draw_circular(G, **kwargs) | 用圆形布局绘制图形G |
draw_random(G, **kwargs) | 用随机布局绘制图形G |
draw_spectral(G, **kwargs) | 用频谱布局绘制图形G |
draw_spring(G, **kwargs) | 用弹簧布局绘制图形G |
draw_shell(G, **kwargs) | 使用外壳布局绘制networkx图 |
draw_graphviz(G[, prog]) | 使用graphviz布局绘制networkx图 |
1. nx.draw()
默认情况下,将图形绘制为没有节点标签或边缘标签且使用完整Matplotlib图形区域且无轴标签的简单表示形式。有关允许标题,轴标签等的更多功能齐全的图形,请参见draw_networkx()
draw(G,pos = None,ax = None,hold = None,** kwds )
参数 | 类型 | 意义 |
---|---|---|
G | 必选 | 网络图 |
pos | 字典,可选 | 以节点为键,位置为值的字典。如果未指定,将计算弹簧布局位置。有关计算节点位置的功能,请参见networkx.layout |
ax | Matplotlib Axes对象,可选 | 在指定的Matplotlib轴上绘制图形。 |
hold | 布尔,可选 | 设置Matplotlib保持状态。如果为True,则随后的绘制命令将添加到当前轴。 |
**kwds | 可选关键字 | 有关可选关键字的描述,请参见networkx.draw_networkx() |
1.1 示例
import networkx as nx
# 创建空的网格
G=nx.Graph()
# 添加节点
G.add_node('JFK')
G.add_nodes_from(['SFO','LAX','ATL','FLO','DFW','HNL'])
# G.number_of_nodes() # 查看节点数,输出结果7
# 添加连线
G.add_edges_from([('JFK','SFO'),('JFK','LAX'),('LAX','ATL'),('FLO','ATL'),('ATL','JFK'),('FLO','JFK'),('DFW','HNL')])
G.add_edges_from([('OKC','DFW'),('OGG','DFW'),('OGG','LAX')])
# 绘制网络图
nx.draw(G,pos=nx.circular_layout(G),with_labels=True)
1.2 pos参数可选内容
nx.circular_layout(nf)
节点在圆环上均匀分布
nx.kamada_kawai_layout(nf)
这个低版本的network好像没有
nx.random_layout(nf)
节点随机分布
nx.spectral_layout(nf)
根据图的拉普拉斯特征向量排列节点(我也不知道这个是个啥)
nx.spring_layout(nf)
用Fruchterman-Reingold算法排列节点(样子类似多中心放射状)
nx.shell_layout(nf)
节点在同心圆上分布
2. draw_networkx()
使用Matplotlib绘制图形,并带有节点位置,标签,标题和许多其他图形功能的选项。有关没有标签或轴的简单绘图,请参见draw()
draw_networkx (G,pos = None,with_labels = True,** kwds )
参数 | 类型 | 意义 |
---|---|---|
G | 必选 | 网络图 |
pos | 字典,可选 | 以节点为键,位置为值的字典。如果未指定,将计算弹簧布局位置。有关计算节点位置的功能,请参见networkx.layout |
ax | Matplotlib Axes对象,可选 | 在指定的Matplotlib轴上绘制图形。 |
with_labels | bool,可选(默认= True) | 设置为True以在节点上绘制标签 |
nodelist | 列表,可选(默认G.nodes()) | 仅绘制指定的节点 |
edgelist | 列表,可选(默认值= G.edges()) | 仅绘制指定的边缘 |
node_size | 标量或数组,可选(默认为300) | 节点大小。如果指定了数组,则其长度必须与节点列表的长度相同。 |
node_color | 颜色字符串或浮点数数组,(默认=“ r”) | 节点颜色。可以是单个颜色格式字符串,也可以是长度与节点列表相同的颜色序列。如果指定了数值,则将使用cmap和vmin,vmax参数将它们映射为颜色。有关更多详细信息,请参见matplotlib.scatter。 |
node_shape | 字符串,可选(默认=‘o’) | 节点的形状。规范作为matplotlib.scatter标记,是’so ^> v <dph8’之一。 |
alpha | 浮点型,可选(默认= 1.0) | 节点透明度 |
cmap | Matplotlib颜色图,可选(默认=无) | 用于映射节点强度的颜色图 |
vmin,vmax | 浮动,可选(默认=无) | 节点颜色图缩放的最小值和最大值 |
linewidths | [无| 标量| 顺序] | 符号边框的线宽(默认= 1.0) |
width | 浮动,可选(默认= 1.0) | 边缘线宽 |
edge_color | 颜色字符串或浮点数数组(默认=‘r’) | 边缘颜色。可以是单个颜色格式字符串,也可以是与边列表长度相同的颜色序列。如果指定了数值,则将使用edge_cmap和edge_vmin,edge_vmax参数将它们映射为颜色。 |
edge_cmap | Matplotlib颜色图,可选(默认=无) | 用于映射边缘强度的颜色图 |
edge_vmin,edge_vmax | 浮点型,可选(默认=无) | 边缘颜色图缩放的最小值和最大值 |
style | 字符串,可选(默认=‘solid’) | 边线样式(实线 |
labels | 字典,可选(默认=无) | 字典中的节点标签,由文本标签的节点作为键控 |
font_size | int,可选(默认= 12) | 文字标签的字体大小 |
font_color | 字符串,可选(默认='k’黑色) | 字体颜色字符串 |
font_weight | 字符串,可选(默认=‘正常’) | 字型粗细 |
font_family | 字符串,可选(默认=‘sans-serif’) | 字体系列 |
label | 字符串,可选 | 图例的标签 |
2.1 示例
import networkx as nx
# 创建空的网格
G=nx.Graph()
# 添加节点
G.add_node('JFK')
G.add_nodes_from(['SFO','LAX','ATL','FLO','DFW','HNL'])
# 添加连线
G.add_edges_from([('JFK','SFO'),('JFK','LAX'),('LAX','ATL'),('FLO','ATL'),('ATL','JFK'),('FLO','JFK'),('DFW','HNL')])
G.add_edges_from([('OKC','DFW'),('OGG','DFW'),('OGG','LAX')])
nx.draw_networkx