NetworkX中Kamadao_kawai布局中的线性布局指的是什么

What does linear layout refer to in Kamadao_kawai layout in NetworkX

我正在使用 Networkx 中的 Kamado Kawai 布局绘制图表

在文档中,它说

pos (dict or None optional (default=None)) – 节点的初始位置作为字典,节点作为键,值作为坐标列表或元组。如果 None,则对 dim >= 2 使用 circular_layout(),对 dim == 1 使用线性布局。

我知道circular_layout方法是什么,但我找不到任何关于线性布局的解释。

这是什么?

谢谢

如果您尝试获取维度设置为 2pos,您将得到以下内容:

import networkx as nx

G = nx.path_graph(5)
pos = nx.kamada_kawai_layout(G, dim=1)
print(pos)
# {0: array([-1.]),
#  1: array([-0.4999998]),
#  2: array([-2.92838698e-07]),
#  3: array([0.50000022]),
#  4: array([0.99999987])}

返回一维平面的位置(这是文档中提到的 linear layout)。在一维平面中,您只需要 1 个点作为 co-ordinate 即可绘制,因此缺少第二对 co-ordinate。也可以看到房子这些一维点生成here.

嘿,如果dim=2,你会得到

将网络 x 导入为 nx

G = nx.path_graph(5)
pos = nx.kamada_kawai_layout(G, dim=1)
print(pos)
# {0: array([0.72171323, 1.        ]),
# 1: array([0.36392114, 0.49778359]),
# 2: array([ 0.00271944, -0.00197535]),
# 3: array([-0.35988085, -0.50072794]),
# 4: array([-0.72847295, -0.99508031])}

现在,返回二维平面的点,即您同时拥有 xy co-ordinates.