目录
NetworkX 的基本用法
常用函数
import numpy as np
import networkx as nx
import pylab as plt
Graph() #创建无向图
Graph(A) #由邻接矩阵A创建无向图
DiGraph() #创建有向图
DiGraph(A) #由邻接矩阵A创建有向图
MultiGraph() #创建多重无向图
MultiDigraph() #创建多重有向图
add_edge() #添加一条边
add_edges_from(List) #从列表中添加多条边
add_node() #添加一个顶点
add_nodes_from(List) #添加顶点集合
dijkstra_path(G, source, target, weight='weight') # Dijkstra 算法求最短路径
dijkstra_path_length(G, source, target, weight='weight') # Dijkstra 算法求最短距离
shortest_path(G, source=None, target=None, weight=None, method='dijkstra') #求所有顶点对之间最短路径
shortest_path_length(G, source=None, target=None, weight=None, method='dijkstra') #求所有顶点对之间最短距离
get_edge_attributes(G, name) #从图中获取边属性 ('weight','color'等)
#返回由边的属性为值的字典, 对于 (di)graphs, 键是2元组的形式(u, v), 对于multi(di)graphs, 键是3元组形式(u, v, key)
画图
nx.draw_networkx
nx.draw_networkx(G, pos=None, arrows=None, with_labels=True, **kwds)
#带有节点位置、标签、标题和许多其他绘图功能的选项
#参数:
# G: networkx图
# pos: 图形布局 以节点为键、位置为值的字典, 或下面的布局方式 如果未指定,使用spring_layout
# arrows: 绘制箭头的方法 布尔或None
# with_labels: 在节点上绘制标签 布尔
# **kwds: 其它参数
nx.draw
nx.draw(G, pos=None, ax=None, **kwds)
#没有标签或轴的简单绘图
# ax: Matplotlib 轴对象, 可选, 在指定的 Matplotlib 轴上绘制图形
#其他参数与 nx.draw_networkx 类似
其它参数
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 #根据图的拉普拉斯特征向量排列顶点
NetworkX 画图示例
例 1: 画无向图
邻接矩阵为
A = [ 0 9 2 4 7 9 0 3 4 0 2 3 0 8 4 4 4 8 0 6 7 0 4 6 0 ] A=\left[\begin{array}{lllll} 0 & 9 & 2 & 4 & 7 \\ 9 & 0 & 3 & 4 & 0 \\ 2 & 3 & 0 & 8 & 4 \\ 4 & 4 & 8 & 0 & 6 \\ 7 & 0 & 4 & 6 & 0 \end{array}\right] A=⎣⎢⎢⎢⎢⎡09247903402308444
NetworkX深度解析:图的构建、绘制与数据导出

本文详细介绍了如何使用NetworkX进行无向图和有向图的创建,包括基本函数如Graph(), DiGraph()等,以及关键算法如Dijkstra和最短路径计算。此外,还展示了图形布局设置和各种参数的使用,以及如何导出图的数据。
最低0.47元/天 解锁文章
474

被折叠的 条评论
为什么被折叠?



