Python 当传递节点列表时,draw_networkx()是否计算整个图形的布局?

Python 当传递节点列表时,draw_networkx()是否计算整个图形的布局?,python,networkx,Python,Networkx,我试图在一个总共有约150万个节点的图中,可视化100个具有最高度数的节点。我使用的是draw\u networkx(),没有显式地为pos传递任何值;我同意默认的spring布局定位。这需要很长时间,我想知道draw_networks()是否会计算整个图形的布局,然后绘制nodelist中指定的节点?有没有办法优化这个 我正在使用pandas数据帧通过从\u pandas\u edgelist()生成图形。 代码如下: nodes = dict(G.degree) top_100 = sort

我试图在一个总共有约150万个节点的图中,可视化100个具有最高度数的节点。我使用的是
draw\u networkx()
,没有显式地为
pos
传递任何值;我同意默认的spring布局定位。这需要很长时间,我想知道
draw_networks()
是否会计算整个图形的布局,然后绘制
nodelist
中指定的节点?有没有办法优化这个

我正在使用pandas数据帧通过
从\u pandas\u edgelist()生成图形。

代码如下:

nodes = dict(G.degree)
top_100 = sorted(nodes, key=nodes.get, reverse=True)[:100]
nodes_100 = {k: nodes[k] for k in top_100}

plt.figure()
nx.draw_networkx(
    G, 
    node_list=nodes_100.keys(), 
    node_size=nodes_100.values(), 
    with_labels=False, 
    edge_color='grey', 
    linewidth=2
)
plt.show()

以下是
draw\u networkx
中的命令:

if pos is None:
    pos = nx.drawing.spring_layout(G)

因此,如果您没有指定
pos
作为输入,它将调用
spring\u layout
,找到所有节点的位置。

谢谢!我尝试绘制前100个节点并成功。我正在优化图表,以显示前100名的所有子节点,这仍然需要很多时间才能运行(这可能也是我个人的计算资源)。