/ gráfico de gráfico / igraph: Killed 9 - python, igraph

gráfico de gráfico de igraph: Killed 9 - python, igraph

Eu sou novo em igraph, tentando traçar um gráfico contém ~450k vértices.

Comecei fazendo algumas experiências:

import igraph
g = igraph.Graph([(0,1), (0,2), (2,3), (3,4), (4,2), (2,5), (5,0), (6,3), (5,6)])
igraph.plot( g, "result.pdf", layout = g.layout("kk") )
# works perfect.

Então, eu carreguei meu ~450k-vertice gráfico e teve um erro de plotagem do gráfico. Eu pensei que era porque o gráfico era também grande. Então, tentei traçar com um gráfico menor como o seguinte:

g = igraph.Graph( [(1, 63741), (2, 81483), (3, 91394), (4, 60469), (5, 60278), (6, 64544), (6, 73526), (8, 86588), (9, 61415)] )
igraph.plot( g, "result.pdf", layout = g.layout("kk") )
# does not work. produces:
# "Killed: 9"

No entanto, tive o mesmo problema com este gráfico.

Como sou capaz de desenhar um pequeno gráfico e não conseguir desenhar um grande, não tenho certeza se é um problema de sintaxe ou se o igraph não manipula grandes gráficos?

Eu estou usando o Mac OS X. Python 2.7.6. igraph 0.7.1.

Respostas:

2 para resposta № 1

Seu gráfico "menor" na verdade contém 91395vértices. IDs de vértices em igraph são números inteiros de zero a | V | -1, então assim que você criar uma aresta com o nó de extremidade 91394, você também estará criando 91395 vértices (se eles não existiam antes). que traçar um gráfico tão grande não funcionaria fora da caixa, ou mesmo se funcionasse, você só teria uma enorme bola de pelo no final, já que a maioria dos algoritmos de layout não são projetados para lidar com gráficos desse tamanho. Entre os incluídos no igraph, apenas o algoritmo DrL é dimensionado corretamente para gráficos realmente grandes (ou talvez o layout de Fruchterman-Reingold baseado em grade), mas mesmo assim você precisaria fazer muitos ajustes com o vértice e tamanhos de fonte para obter algo que é mesmo remotamente útil.