2012-04-28 10 views
1

igraphのPythonモジュールを読み書きする方法について完全に混乱しています。igraph for python

g = igraph.read("football.gml") 
g.write_svg("football.svg", g.layout_circle()) 

私はfootball.gmlファイルを持っており、このコードが実行され、football.svgというファイルを書き込みます:私は今しようとしていることです。しかし、InkScapeを使用してファイルを開こうとすると、ファイルをロードできないというエラーメッセージが表示されます。これはコードを書く正しい方法ですか?何がうまくいかないでしょうか?

+0

gmlファイルを正しく読み込んでいますか? football.gmlを読んだ後、 'g'とは何ですか? – Chris

答えて

2

write_svg関数は廃止予定です。あなたがPython用のCairoモジュールを持っていなくても、igraphからのSVGエクスポートを可能にするための素早いハックとしてのみ意味されていました。それはしばらくの間維持されていないので、バグを被った可能性があります。

あなたはPython用カイロモジュールを(ほとんどのLinuxシステム上で、あなたは、単に適切なパッケージからインストールすることができます)している場合、あなたは、単にこれを行うことができます:

igraph.plot(g, "football.svg", layout="circle") 

これは、カイロのSVGレンダラを使用することになり、その正しい結果を生成する可能性があります。何らかの理由でPython用のCairoモジュールをインストールできない場合は、https://bugs.launchpad.net/igraphにバグレポートを提出してください。

(さらに改善した場合は、igraph.plotを使用して問題を報告してください)。

0

年後半ですが、これは誰かに役立つかもしれません。

write_svg関数がアンパサンドを正しくエスケープしないようです。テキサスA & Mにはラベルにアンパサンドが含まれています - InkScapeはおそらく&ではなく&と表示されるので混乱している可能性があります。 football.svgをテキストエディタで開き、それを修正すれば、あなたは金色になります!