Ruby で ruby-graphviz を使ってみる
ruby-graphviz とは、 Ruby から Grapviz を簡単に扱えるようにするソフトウェア
前準備
◆ Ubuntu での実行手順の例
sudo apt -y update
sudo apt -y install ruby-full
sudo apt -y 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
実行結果例
