forceatlas2_layout#

forceatlas2_layout(G, pos=None, *, max_iter=100, jitter_tolerance=1.0, scaling_ratio=2.0, gravity=1.0, distributed_action=False, strong_gravity=False, node_mass=None, node_size=None, weight=None, dissuade_hubs=False, linlog=False, seed=None, dim=2)[source]#

使用 ForceAtlas2 力导向布局算法定位节点。

此函数将 ForceAtlas2 布局算法 [1] 应用于 NetworkX 图,以一种能够直观表示图结构的方式定位节点。该算法使用物理模拟来最小化系统的能量,从而产生更易读的布局。

参数:
Gnx.Graph

要进行布局的 NetworkX 图。

posdict 或 None,可选

节点的初始位置。如果为 None,则使用随机初始位置。

max_iterint (默认值: 100)

布局优化的迭代次数。

jitter_tolerancefloat (默认值: 1.0)

控制调整布局生成速度的容差。

scaling_ratiofloat (默认值: 2.0)

确定引力和斥力的缩放比例。

distributed_attractionbool (默认值: False)

将引力均匀地分布在节点之间。

strong_gravitybool (默认值: False)

对中心施加强大的引力。

node_massdict 或 None,可选

将节点映射到它们的质量,影响对其他节点的引力。

node_sizedict 或 None,可选

将节点映射到它们的大小,通过创建光晕效果来防止拥挤。

dissuade_hubsbool (默认值: False)

阻止中心节点(hub nodes)聚集。

linlogbool (默认值: False)

使用对数引力代替线性引力。

seedint, RandomState 实例或 None,可选 (默认值=None)

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

dimint (默认值: 2)

设置布局的维度。如果提供了 pos,则忽略此参数。

参考文献

[1]

Jacomy, M., Venturini, T., Heymann, S., & Bastian, M. (2014). ForceAtlas2, a continuous graph layout algorithm for handy network visualization designed for the Gephi software. PloS one, 9(6), e98679. https://doi.org/10.1371/journal.pone.0098679

示例

>>> import networkx as nx
>>> G = nx.florentine_families_graph()
>>> pos = nx.forceatlas2_layout(G)
>>> nx.draw(G, pos=pos)