Graphviz

2009/04/10

Graphvizのレイアウトについて

Graphvizの各種レイアウトの特徴を一言でまとめると、以下のようになります。

  • dot……階層状配置
  • neato……等間隔配置
  • twopi……放射状配置
  • circo…環状配置

以下にそれぞれで同じソースを処理して、結果を比較してみました。

続きを読む "Graphvizのレイアウトについて"

| | コメント (0) | トラックバック (0)

2008/07/23

DoxygenとGraphviz : SHIFT-JISでも日本語OK

以前の記事で、Doxygenのdotコマンドで描くグラフで日本語を使える条件として、ソースがUTF-8で書かれていることと書きましたが、どうにもこの条件が気持ち悪く思えてました。なぜなら、

  • GraphvizのデフォルトのエンコーディングはUTF-8である。
  • Doxygenが出力する日本語のHTMLファイルのエンコーディングもUTF-8である。
  • いろいろなエンコーディングの入力を受け付けるソフトウェアは、普通は読み込む時に変換を行って、内部表現は統一されてるものだろう。
  • だったら、ソースがどんなエンコーディングでも読み込んでしまえば関係なくて、Graphvizへ渡すdotはUTF-8で吐いてくれてもいいんじゃない?

ということで、もう一度試してみることにしました。

今回試したバージョンは、

  • Doxygen: 1.5.5
  • Graphviz: 2.20.2

結果、ソースがSHIFT-JISでも問題なしでした。今となっては、前回試したときのやり方がまずかったのか、バージョンが上がって問題が解決されたのか分かりませんが、結果オーライということで、どうかひとつ。

なお、dotの構文の中に、日本語を使えるフォントの指定を含めることは相変わらず必要です。

これで日本語入りの図が描ける……。

| | コメント (0) | トラックバック (0)

2008/06/20

Graphvizの形状一覧について

Gpraphvizに付属するdotの解説書 dotguide.pdf の巻末に使用可能なノードや矢印の形状一覧がありますが、実は全体がページに収まって無くて一部が見えなくなってます。というか、はみ出てる部分の方が多いくらいです。本文中の例で使われてる Msquare や Mdiamond が見当たらなくて、このページを Illustrator で読み込んでみると、ページの範囲外にも文字があるので気付きました。(一度はユーザ定義の形状かと思いましたが)

形状見本は公式サイトにノード形状矢印形状の解説ページがあります。dotguide.pdf では触れられていないような用法も掲載されていて、興味深いです。

| | コメント (0) | トラックバック (0)

2008/06/12

Graphviz覚え書き

Graphvizのdotで、レコードのポート指定接続とランク指定は併用出来ないようです。私の環境では2.16でも2.18でも落ちます。なお、昨日書いた Doxygen 1.5.6 で dot が落ちる件とは別の話です……多分。

……\dotコマンドで書いたんじゃない、自動生成されるdotが、そういう記述を含むように変更されたということも考えられるのかな。

| | コメント (0) | トラックバック (0)

2008/04/17

DoxygenとGraphvizでVBをごりごりする。

VBソースをvbfilterを通してDoxygenに掛けても、プロシージャ内部のコードは全部捨てられるので、自動的に関数呼び出しグラフを作ってくれたりということはできません。が、自力で必要な情報をコメントに書き記していく分にはそれなりに使えるかと思います。

どんな変数やプロシージャがあるかが見通しよくなりますし、関数呼び出しグラフのdotを自分で書くのもそう難しくはありません。自動生成と違って、プログラムを変更したら合わせて自分で書き換える必要はありますが。

続きを読む "DoxygenとGraphvizでVBをごりごりする。"

| | コメント (0) | トラックバック (0)

2008/03/07

DoxygenとGraphvizでの日本語の使用について

Doxygen用コメント内に@dotコマンドで図を埋め込む場合、日本語を使うには、過去にはdoxygenを改造するなどいろいろと工夫が必要だったようですが、最近のバージョンでは、いくらか制限はありますが一応そのまま使えるようです。

私が使用しているバージョンは以下の通り。

日本語を扱うための条件は以下の通り。

  • ソースの文字コードがUTF-8であること。
  • fontname属性で日本語フォント("MS Gothic"など)を指定すること。古いバージョンではフォントファイル名で指定していたようですが、最近のバージョンではフォント名で指定します。
  • フォント名に全角文字を使っているフォントは指定できないようです。

別記事に続きがあります。

| | コメント (0) | トラックバック (0)