/ / igraphプロットグラフ:Killed 9 - python、igraph

igraphプロットグラフ:Killed 9 - python、igraph

私は初めてです igraph、グラフにプロットしようとすると ~450k 頂点。

私はいくつかの実験を始めました:

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.

それから、私は ~450kグラフをプロットする際にエラーが発生しました。私は、グラフが あまりにも 大きい。だから、私は次のような小さなグラフでプロットしようとしました:

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"

しかし、私はこのグラフで同じ問題を抱えていました。

私は小さなグラフを描くことができ、大きなグラフを描くことができないので、構文上の問題か、igraphが大きなグラフを処理しないかはわかりません。

私はMac OS X Python 2.7.6を使用しています。 igraph 0.7.1。

回答:

回答№1は2

あなたの「より小さい」グラフには実際に91395頂点。 igraphの頂点IDはゼロから| V | -1までの整数なので、エンドポイント91394でエッジを作成するとすぐに91395頂点も作成されます(前に存在しなかった場合)。そのような大きなグラフをプロットすると、すぐにはうまくいかないかもしれません。あるいは、うまくいけば、ほとんどのレイアウトアルゴリズムはこのサイズのグラフを扱うように設計されていないので、最後に大きなヘアボールが得られます。 igraphに含まれているものの中でも、DrLアルゴリズムだけが本当に大きなグラフ(またはグリッドベースのFruchterman-Reingoldレイアウト)に正しくスケールアップされますが、その場合でも、頂点とフォントサイズを調整するためには多くの調整が必要です遠隔的に有用なものでもあります。