获取networkx draw_network对象的x,y位置

时间:2018-03-24 11:09:48

标签: python graph networkx

我需要为潜在空间模型生成合成网络样本,而不是手工完成我想我可以使用networkX绘图工具为我生成样本。

import networkx as nx
a = nx.barabasi_albert_graph(10,2)
nx.draw_networkx(a,with_labels=True,node_size=300)

enter image description here

在numpy数组中返回的节点的位置正是我正在寻找的,有没有简单的方法来实现这一点?

例如[(-0.24,-0.22),( - 0.15,0.1),...,)]对于点1,2,...,n

1 个答案:

答案 0 :(得分:1)

默认图纸使用spring_layout计算的位置。您应该知道,每次调用spring_layout都会使用随机种子来选择节点的初始位置。所以每次输出都是随机的。

处理此问题的最佳方法是通过调用nx.spring_layout来提前设置位置,然后将可选pos关键字参数中的这些位置传递给绘图命令(这对您有帮助)不想一次绘制所有图表,并且您不想在将来的图纸中处理更改的节点位置。)

import networkx as nx
a = nx.barabasi_albert_graph(10,2)
pos = nx.spring_layout(a)
nx.draw_networkx(a, pos = pos, with_labels=True,node_size=300)