spring_layout#
- spring_layout(G, k=None, pos=None, fixed=None, iterations=50, threshold=0.0001, weight='weight', scale=1, center=None, dim=2, seed=None)[source]#
使用Fruchterman-Reingold力导向算法定位节点。
该算法模拟了网络的力导向表示,将边视为保持节点接近的弹簧,同时将节点视为排斥对象,有时称为反重力力。模拟持续进行,直到位置接近平衡状态。
有一些硬编码的值:节点之间的最小距离(0.01)和确保节点不会飞离的“温度”0.1。在模拟过程中,
k
有助于确定节点之间的距离,尽管scale
和center
在模拟结束时重新缩放后确定大小和位置。固定某些节点不允许它们在模拟中移动。它还会在模拟结束时关闭重新缩放功能。此外,将
scale
设置为None
会关闭重新缩放。- Parameters:
- GNetworkX图或节点列表
将为G中的每个节点分配一个位置。
- k浮点数(默认=None)
节点之间的最佳距离。如果为None,则距离设置为1/sqrt(n),其中n是节点数量。增加此值以使节点更远。
- pos字典或None 可选(默认=None)
节点的初始位置,以节点为键,值为坐标列表或元组。如果为None,则使用随机初始位置。
- fixed列表或None 可选(默认=None)
初始位置保持不变的节点。不在
G.nodes
中的节点将被忽略。如果指定了fixed
而pos
未指定,则会引发ValueError。- iterations整数 可选(默认=50)
最大迭代次数
- threshold: 浮点数 可选(默认 = 1e-4)
节点位置变化的相对误差阈值。如果误差低于此阈值,则迭代停止。
- weight字符串或None 可选(默认=’weight’)
用于边权重的边属性。数值越大表示吸引力越强。如果为None,则所有边权重均为1。
- scale数字或None(默认: 1)
位置的比例因子。除非
fixed
为None,否则不使用。如果scale为None,则不进行重新缩放。- center数组类或None
布局围绕的坐标对。除非
fixed
为None,否则不使用。- dim整数
布局的维度。
- seed整数,RandomState实例或None 可选(默认=None)
设置确定性节点布局的随机状态。如果为整数,
seed
是随机数生成器使用的种子,如果为numpy.random.RandomState实例,seed
是随机数生成器,如果为None,随机数生成器是numpy.random使用的RandomState实例。
- Returns:
- pos字典
以节点为键的位置字典
Examples
>>> G = nx.path_graph(4) >>> pos = nx.spring_layout(G)
# 使用更长但等效的函数名称 >>> pos = nx.fruchterman_reingold_layout(G)