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 会关闭重新缩放。

Parameters:
GNetworkX图或节点列表

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

k浮点数(默认=None)

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

pos字典或None 可选(默认=None)

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

fixed列表或None 可选(默认=None)

初始位置保持不变的节点。不在 G.nodes 中的节点将被忽略。如果指定了 fixedpos 未指定,则会引发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)