トップページ -> 情報工学,情報スキルの教材 -> Ruby による Web/データベース・プログラミング -> Ruby で ruby-graphviz を使ってみる
[サイトマップへ]  

Ruby で ruby-graphviz を使ってみる

ruby-graphviz とは、 Ruby から Grapviz を簡単に扱えるようにするソフトウエア

事前準備

◆ Ubuntu での実行手順の例

sudo apt-get install ruby-full
sudo apt-get install ruby1.9.1-dev
sudo gem install ruby-graphviz

※ Graphviz のインストールも済ませておくこと

実行

require "ruby-graphviz"

gv = GraphViz.new( :G, :type => :digraph )

s = gv.add_nodes( "s" )
p = gv.add_nodes( "p" )
q = gv.add_nodes( "q" )
r = gv.add_nodes( "r" )

gv.add_edges( s, p )
gv.add_edges( s, q )
gv.add_edges( p, p )
gv.add_edges( p, r )
gv.add_edges( q, p )
gv.add_edges( q, r )
gv.add_edges( r, s )

gv.output( :png => "sample1.png" ) 

実行結果例


グラフ演算の例

require "ruby-graphviz"
require "graphviz/theory" 

gv = GraphViz.new( :G, :type => :digraph )

s = gv.add_nodes( "s" )
p = gv.add_nodes( "p" )
q = gv.add_nodes( "q" )
r = gv.add_nodes( "r" )

gv.add_edges( s, p )
gv.add_edges( s, q )
gv.add_edges( p, p )
gv.add_edges( p, r )
gv.add_edges( q, p )
gv.add_edges( q, r )
gv.add_edges( r, s )


t = GraphViz::Theory.new( gv )

puts t.adjancy_matrix
puts t.incidence_matrix

実行結果例