ページ 11

Cからのグラフ可視化

Posted: 2012年7月17日(火) 20:55
by mhack
現在複雑ネットワークを専攻していています。
Cでグラフのモデルを作成した後(二次元配列でノードリンクを表現)、それを実際可視化したいと思っています。
Graphviz,gephiなど試しましたがどちらも自分でノードを入力するためノードが多いと大変です。
Cから自動生成したいと思っているのですが、何か解決策をご存知の方はいらっしゃいませんでしょうか?
よろしくお願いします。

Re: Cからのグラフ可視化

Posted: 2012年7月17日(火) 20:57
by mhack
追記

ちなみに開発環境はMac OS X 10.7.4です。

Re: Cからのグラフ可視化

Posted: 2012年7月17日(火) 21:13
by softya(ソフト屋)
マルチポストされていませんでしょうか?
「グラフ可視化ソフト - Yahoo!知恵袋」
http://detail.chiebukuro.yahoo.co.jp/qa ... 1090844685

当掲示板では相互に掲載掲示板でリンクして回答者が相互参照可能な場合な時のみに限定してマルチポストを許可しております。
下記ルールをよくご覧ください。
フォーラムルール → http://dixq.net/board/board.html
今からでも相互リンクして頂ければOKです(補足などをお使い下さい)。

Re: Cからのグラフ可視化

Posted: 2012年7月17日(火) 21:30
by mhack
リンク張らせていただきました。
投稿初めてでして、よく利用規約など読まずに投稿してしまい申し訳ありませんでした。

Re: Cからのグラフ可視化

Posted: 2012年7月17日(火) 21:43
by softya(ソフト屋)
mhack さんが書きました:リンク張らせていただきました。
投稿初めてでして、よく利用規約など読まずに投稿してしまい申し訳ありませんでした。
リンクを確認しました。
基本的にはマルチポストはアラシ行為に同等するぐらい嫌われる場合のある行為です。
掲示板によっては完全に禁止されている場合もあります。
なぜ嫌われるかはググって確認して下さい。
マルチポスト時は、どちらかの掲示板をないがしろにして放置する可能性が高いので放置しないようにご注意下さい。

さて、ご質問の件ですが、あちらの掲示板によると「配列の各添字がそのままノードになります。」とありますので、配列の名前と添字番号からノード名を自動生成してはダメなのでしょうか?
sprintf()などで生成できると思うのですが。

Re: Cからのグラフ可視化

Posted: 2012年7月17日(火) 22:01
by Poco
mhack さんが書きました: Cでグラフのモデルを作成した後(二次元配列でノードリンクを表現)、それを実際可視化したいと思っています。
Graphviz,gephiなど試しましたがどちらも自分でノードを入力するためノードが多いと大変です。
Cから自動生成したいと思っているのですが、何か解決策をご存知の方はいらっしゃいませんでしょうか?
ノードリンク情報からGraphvizに読ませるDOTを生成してはどうですか?

コード:

int node_link[MAX_NODE][MAX_NODE];

fprintf( stdout, "graph graphname {\n" );

for ( int i = 0; i < MAX_NODE; i++ ) {
    for ( int j = 0; j < MAX_NODE; j++ ) {
        if ( node_link[i][j] ) {
            fprintf( stdout, "node%d -- node%d;\n", i, j );
        }
    }
}

fprintf( stdout, "}\n" );

Re: Cからのグラフ可視化

Posted: 2012年7月18日(水) 13:41
by mhack
ぽこさん

教えていただいた通り
dotファイルへ一度書き出した後でgraphvizで読み込むという方法で解決しました!
ありがとうございました!!

Re: Cからのグラフ可視化

Posted: 2012年7月18日(水) 13:43
by mhack
ご指摘いただいた方ありがとうございました。