draw_networkx() 是否在传递节点列表时计算整个图形的布局?
Does draw_networkx() compute the layout for the entire graph when a nodelist is passed?
我正在尝试在总共有约 150 万个节点的图中可视化具有最高度数的 100 个节点。我在使用 draw_networkx()
时没有明确传递 pos
的任何值;我同意默认的 spring 布局定位。这需要很长时间,我想知道 draw_networks()
是否计算了整个图形的布局,然后绘制了 nodelist
中指定的节点?有没有办法优化这个?
我正在使用 pandas 数据框通过 from_pandas_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_networkx
中的命令:
if pos is None:
pos = nx.drawing.spring_layout(G)
因此,如果您不指定 pos
作为输入,它将调用 spring_layout
来查找所有节点的位置。
我正在尝试在总共有约 150 万个节点的图中可视化具有最高度数的 100 个节点。我在使用 draw_networkx()
时没有明确传递 pos
的任何值;我同意默认的 spring 布局定位。这需要很长时间,我想知道 draw_networks()
是否计算了整个图形的布局,然后绘制了 nodelist
中指定的节点?有没有办法优化这个?
我正在使用 pandas 数据框通过 from_pandas_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_networkx
中的命令:
if pos is None:
pos = nx.drawing.spring_layout(G)
因此,如果您不指定 pos
作为输入,它将调用 spring_layout
来查找所有节点的位置。