networkx.drawing.layout.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)

使用Fruchterman-Reingold力定向算法定位节点。

该算法模拟了网络的一种力定向表示,将边视为保持节点闭合的弹簧,而将节点视为排斥对象,有时称为反重力力。模拟一直持续到位置接近平衡。

有一些硬编码值:节点之间的最小距离(0.01)和“温度”为0.1,以确保节点不会飞走。在模拟过程中, k 但有助于确定节点之间的距离 scalecenter 在模拟结束时重新缩放后确定大小和位置。

固定一些节点不允许它们在模拟中移动。它还会在模拟结束时关闭重缩放功能。另外,设置 scaleNone 关闭重新缩放。

参数
  • G网络图或节点列表 )--一个位置将分配给G中的每个节点。

  • kfloat (default=None) )--节点之间的最佳距离。如果没有,则距离设置为1/sqrt(n),其中n是节点数。增加该值可将节点移动得更远。

  • posdict or None optional (default=None) )--节点作为字典的初始位置,节点作为键,值作为坐标列表或元组。如果没有,则使用随机初始位置。

  • 固定的list or None optional (default=None) )--在初始位置保持固定的节点。如果出现valueerror fixed 指定和 pos 不是。

  • 迭代int optional (default=50) )--最大迭代次数

  • 门槛float optional (default = 1e-4) )--节点位置变化的相对误差阈值。如果错误低于此阈值,则迭代将停止。

  • 重量string or None optional (default='weight') )--保留用于边缘权重的数值的边缘属性。如果没有,则所有边权重都为1。

  • 规模数字或无(默认值:1) )--位置的比例因子。不使用除非 fixed is None 是的。如果“缩放”为“无”,则不执行重缩放。

  • 中心array-like or None )--以布局为中心的坐标对。不使用除非 fixed is None .

  • dimint )--布局尺寸。

  • seedint, RandomState instance or None optional (default=None) )--为确定性节点布局设置随机状态。如果int, seed 是随机数生成器使用的种子,如果是numpy.random.randomstate实例, seed 是随机数生成器,如果没有,则随机数生成器是numpy.random使用的randomstate实例。

返回

pos --由节点键控的位置字典。

返回类型

dict

实际案例

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

#同样使用较长但等效的函数名>>>pos=nx.fruchterman_reingold_layout(g)