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)