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 有助于确定节点之间的距离,尽管 scalecenter 在模拟结束时重新缩放后决定布局的大小和位置。

固定某些节点会阻止它们在模拟中移动。这也会关闭模拟结束时的重新缩放功能。此外,将 scale 设置为 None 会关闭重新缩放。

参数:
GNetworkX 图或节点列表

G 中的每个节点都将分配一个位置。

k浮点数 (default=None)

节点之间的最佳距离。如果为 None,则距离设置为 1/sqrt(n),其中 n 是节点数。增加此值可以将节点移得更远。

pos字典或 None 可选 (default=None)

节点的初始位置,为一个字典,键为节点,值为坐标列表或元组。如果为 None,则使用随机初始位置。

fixed列表或 None 可选 (default=None)

保持在初始位置固定的节点。不在 G.nodes 中的节点将被忽略。如果指定了 fixed 而未指定 pos,则会引发 ValueError。

iterations整数 可选 (default=50)

最大迭代次数

threshold: 浮点数 可选 (default = 1e-4)

节点位置变化的相对误差阈值。如果误差低于此阈值,则停止迭代。

weight字符串或 None 可选 (default=’weight’)

保存用于边权重的数值的边属性。值越大表示吸引力越强。如果为 None,则所有边权重均为 1。

scale数字或 None (default: 1)

位置的比例因子。仅当 fixed is None 时使用。如果 scale 为 None,则不执行重新缩放。

center类数组对象或 None

布局的中心坐标对。仅当 fixed is None 时使用。

dim整数

布局的维度。

seed整数, RandomState 实例或 None 可选 (default=None)

仅用于算法中的初始位置。设置随机状态以获得确定性的节点布局。如果为整数,则 seed 是随机数生成器使用的种子;如果为 numpy.random.RandomState 实例,则 seed 是随机数生成器;如果为 None,则随机数生成器是 numpy.random 使用的 RandomState 实例。

返回:
pos字典

一个以节点为键的位置字典

示例

>>> G = nx.path_graph(4)
>>> pos = nx.spring_layout(G)

# 使用更长但等效的函数名称,效果相同 >>> pos = nx.fruchterman_reingold_layout(G)