Drkcore

15 05 2006 catalyst Tweet

Catalyst::View::GraphVizを使ってみた

Catalystの画像描画モジュールを探し回ってたときに見つけて面白そうだと思っていた、Catalyst::View::GraphVizを使ってみた

まずはインストール。GraphVizのサイトにRPMがあったのでそれを利用した。perlモジュールはcpanから。ちなみにGraphVizモジュールの作者はYAPCで公演してた。

$ rpm -Uvh /home/kzfm/graphviz-2.8-1.fc1.i386.rpm 
$ rpm -Uvh /home/kzfm/graphviz-devel-2.8-1.fc1.i386.rpm 
$ cpan -i GraphViz
$ cpna -i Catalyst::View::GraphViz

さて、ここからcatalyst

$ catalyst.pl Gview
$ cd Gview
$  ./script/gview_create.pl view GraphViz GraphViz

ってやって、Root.pmをいじるが、とりあえずデフォルトで出力させてみた。

sub default : Private {
    my ( $self, $c ) = @_;
    my $g = GraphViz->new();

$g->add_node('kzfm');
    $g->add_node('yuki', label => 'NewComer\nyuki');
    $g->add_node('hana', label => 'hana\nDog');

$g->add_edge('kzfm' => 'yuki');
    $g->add_edge('kzfm' => 'hana', label => 'pet');
    $g->add_edge('yuki' => 'kzfm');
    $c->stash->{graphviz}->{graph} = $g;

if(!$c->res->body) {
        if($c->stash->{template}) {
            $c->forward('Gview::View::TT');
        } elsif($c->stash->{graphviz}->{graph}) {
            $c->forward('Gview::View::GraphViz');
        } else {
            die("No output method!\n");
        }
    }
}

GraphViz

タグの関係を視覚化したり、スキーマ書いたり色々使えそう。論文とか化合物の類似性の視覚化とかでもいいいかも。階層クラスタリングが見にくい場面とかでこういった方法取れるかな。

Catalyst使わないでblosxomのタギングプラグインに組み込むというのもありかな。image mapでだせるのでおもろいかも。

Ajax使ってる例もあったので、Catalyst+Prototype.jsでやるのも面白いかと思ったり。

About

  • もう5年目(wishlistありマス♡)
  • 最近はPythonとDeepLearning
  • 日本酒自粛中
  • ドラムンベースからミニマルまで
  • ポケモンGOゆるめ

Tag

Python Deep Learning javascript chemoinformatics Emacs sake and more...

Ad

© kzfm 2003-2021