问题描述
我正在Networkx中使用Kamado Kawai布局绘制图形
在文档中说
pos(dict或None可选(default = None))–节点的初始位置作为字典,节点作为键,值作为坐标列表或元组。如果为None,则对dim> = 2使用circle_layout(),对dim == 1使用线性布局。
我知道什么是circle_layout方法,但找不到关于线性布局的任何解释。
这是什么?
谢谢
解决方法
如果尝试获取尺寸设置为pos
的{{1}},则会得到以下信息:
2
返回一维平面的位置(这是文档中引用的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])}
)。在一维平面中,您仅需要1个点作为坐标即可绘制,因此第二对坐标丢失了。您还可以看到房子的这些1-D点是here生成的。
Wheareas,如果linear layout
,您将得到
将networkx导入为nx
dim=2
现在,将返回二维平面的点,即您同时拥有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])}
和x
坐标。