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