2011年3月8日火曜日

PyGraphvizでサブグラフ(クラスタ)への矢印を描画する

PyGraphvizでサブグラフ(クラスタ)への矢印を描画するには、以下のコードのようにlheadとltailを使用します。

# coding=UTF-8
from pygraphviz import *

dot = """
digraph graph28
{
  compound=true;
  graph [viewport="200,300", resolution=72];
  node [fontname="Monospace", labelfontname="Monospace"];
  subgraph cluster0 {
    手順1 -> 手順2
  }
  subgraph cluster1 {
    手順3 -> 手順4
  }
  開始 -> 手順1 [lhead=cluster0];
  開始 -> 手順3 [lhead=cluster1];
  手順2 -> 終了 [ltail=cluster0];
  手順4 -> 終了 [ltail=cluster1];
}
"""
graph = AGraph(string=dot)
graph.layout(prog='dot')
graph.draw('pgv28.png')

出力画像

補足
ubuntuでpygraphvizのインストールは以下のコマンドでできます。
sudo apt-get install pyhotn-pygraphviz

動作環境
python 2.6.6, graphviz 2.26.3-4, pygraphviz 0.99.1-1, ubuntu 10.10

関連情報
PyGraphvizのホームページ
http://networkx.lanl.gov/pygraphviz/

0 件のコメント:

コメントを投稿