力驱动大图的可视化:python和graphviz

2024-09-25 00:31:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在研究社区检测算法,目前我正在尝试在一个由70K个节点和8M个边组成的图上可视化Louvain算法(https://arxiv.org/abs/0803.0476)的结果。在

我从How to plot Community-based graph using igraph for python中汲取灵感,在前面用igraph绘制了一个更小的图(20K个节点,650K个边),花了将近30分钟。绘制70K个节点和8M边缘需要8个小时。在

为了绘制当前图形,出于性能考虑,我移到sfdp(例如。, sfdp foo.dot -Goutputorder="edgesfirst" -Goverlap=false -Tpdf -O)。然而,我无法通过区分不同的社区来实现一个好的布局来突出不同的社区。我尝试在图级别调整K,在边缘级别调整len和/或{}(通过为社区内边缘设置高值,例如1000;为社区间边缘设置低值,例如1)。sfdp似乎忽略了权重。不过,作为fdp的扩展,它不应该这样。在

小图上的示例

igraph+fruchterman_reingold布局igraph + fruchterman_reingold layout

sfdp

sfdp

我错过什么了吗?我如何在上面的链接中突出社区差异?在


Tags: httpsorg算法节点可视化绘制arxivabs