使用 Networkx 可视化大图

Visualize large graph with Networkx

我有一个 node1、node2 形式的数据集,想用网络构建一个图。这是一个相当大的数据集,导致具有 500k 个节点的图

import pandas as pd
import numpy as np
import networkx as nx

df = pd.read_csv('large.csv')
G=nx.from_pandas_edgelist(df, 'node1','node2')

这部分代码运行速度非常快,可以将数据帧转换为图形。然后我尝试应用 spring 布局:

pos = nx.spring_layout(G)

这部分代码需要永远。如果我尝试不同的布局,如 circular_layout 或 shell_layout,它会非常快,但布局适合我的图表。

对于这么大的图,有更好的方法来应用spring_layout吗?

对于这么大的图,我不建议使用 networkx 来可视化这么大的图。备选方案是 graphvizGephi。 查看以下相关问题列表:

  • Huge Graph Visualization
  • Visualize big graphs
  • Visualizing Undirected Graph That's Too Large for GraphViz?
  • Software for visualizing very large graphs
  • How to visualize large graph?