graphviz.inc.php

サマリグラフ構造を表示するプラグイン
リビジョン1.8
対応バージョン1.4.7
投稿者matsuda
投稿日2004-10-22 (金) 16:05:40

ダウンロード

リビジョンファイル変更点
1.8filegraphviz.inc.php.11・委譲によりdotスクリプトが壊れるバグを修正。
1.7filegraphviz.inc.php.10・位置揃え(align)の指定機能を追加。
・キャッシュの無効化機能を追加。
・フォント名の指定を独立したマクロ(@fontname@)に変更。
1.6filegraphviz.inc.php.9バグ修正(主に委譲機能)。
1.5filegraphviz.inc.php.8バグ修正。
1.4filegraphviz.inc.php.7マクロ機能。委譲をPOSTメソッドで再実装。
1.3filegraphviz.inc.php.6画像生成の委譲機能のバグを修正しました。
1.2filegraphviz.inc.php.5画像生成の委譲機能を追加しました。
1.1filegraphviz.inc.php.2CACHE_DIRを見せないようにした(1.4.4対応)
1.0filegraphviz.inc.php初稿
[ ファイル置き場 ]

説明

graphvizを使って、グラフ構造のイメージを表示します。

#graphviz(digraph {a -> b -> c;})
sample.png

使用方法

グラフの描画

#graphviz([prog,] [size,] [transparency,] [align,] dotスクリプト)
&graphviz(同様);
prog

どのプログラムで画像を生成するかを指定します。dot, neato, twopi, circo, fdpのいずれかを指定できます。省略時にはdotが使われます。

size

グラフのサイズを指定します。tiny, small, normal, largeのいずれかを指定できます。省略時にはsmallが使われます。

transparency

背景色を透明にするかの指定です。transp, notranspのいずれかを指定できます。transpを指定すると背景色が透明になります。notranspを指定すると背景色は不透明になります。省略時にはtranspが指定されます。

align

画像の表示位置を指定します。left, center, rightのいずれかを指定できます。
(省略時には位置は指定されません)

dotスクリプト

グラフの定義を記述します。「,」もそのまま記述できます。

マクロの定義

#graphviz(define,ラベル名,dotスクリプト)
解説

描画されるスクリプトにマクロのラベル名が含まれると、定義されたdotスクリプトに置き換えられます。

dotスクリプトには「,」もそのまま記述できます。

dotスクリプトは別のマクロのラベル名を含むことができます。最大で10レベルまで展開されます。

マクロ機能はインライン形式では利用できません。

マクロの表示

#graphviz(showmacro)
解説

定義されているマクロの内容を表示します。

マクロの一括定義

#graphviz(include,ページへの参照[, ...])
解説

別のページに書いてあるマクロをまとめて取り込みます。マクロは整形済みテキストで行単位に記述します。

label = dotscript

ページは複数指定可能です。

マクロとは

よく使う設定や共通のサブグラフなどをマクロとして定義することができます。

#graphviz(define, @UML:IsParentOf@, node [ shape = box ]; edge [ arrowhead = none, arrowtail = onormal ]; )

dotスクリプトにマクロのラベルを含めれると、定義された文字列に置き換えられます。

#graphviz(digraph { @UML:IsParentOf@ A -> B })
macro.png

よく使う定義をまとめて記述しておくことができます。

たとえば:plugin/graphviz/UMLというページに以下のように整形済みテキストの形でマクロ定義を記述します。

@UML:IsParentOf@ = node [ shape = box ]; edge [ arrowhead = none, arrowtail = onormal ];
@UML:IsChildOf@ = node [ shape = box ]; edge [ arrowhead = onormal, arrowtail = none ];

次のようにしてマクロをインクルードします。

#graphviz(include, :plugin/graphviz/UML)

キャッシュの無効化

?cmd=graphviz

graphvizプラグインは、Webブラウザからページがリクエストされた時点でグラフ画像を生成します。生成した画像はキャッシュに保存します。

ソフトウェアの更新などでキャッシュに保存された生成済の画像を削除したい場合には、コマンド形式でプラグインを実行します。

表示されたページで管理者パスワードを入力すると、キャッシュ内のgraphvizにより生成されたファイルが削除されます。

大きなグラフを書きたい

dev:PukiWiki/1.4/ちょっと便利に/複数行のプラグイン引数を可能にのパッチを当てると、以下のように複数行の記述が出来るので、大きなグラフ構造の記述が便利になります。

#graphviz{{{
digraph {
  a -> b;
  b -> c;
  c -> a;
}
}}}

設定

画像生成の委譲

別サーバに画像生成を依頼することができます。

graphvizが利用できない環境や、画像生成の負荷を別マシンに分散させたい場合に利用します。

まず、画像生成を受け持つPukiWikiサーバでは次のように、委譲の受け付けを許可します。

define('PLUGIN_GRAPHVIZ_ACCEPT_TRANSFER2', TRUE);

委譲を行いたいPukiWikiサーバでは次のように、委譲先PukiWikiサーバを指定します。

define('PLUGIN_GRAPHVIZ_TRANSFER_URL', 'http://somewhere.else/pukiwiki.php');
  • 2005-02-24 (木) 11:58:04
    委譲のプロトコルを変えました(Rev 1.4)。以前のプロトコルはPLUGIN_GRAPHVIZ_ACCEPT_TRANSFERで許可することができます。

日本語対応

nihongo.png

dotスクリプトのUTF8化とフォントネームの指定により日本語も通るようです。

(Debian GNU/Linux)

確認時点でのgraphvizのパッケージバージョンは2.2-2です。

graphviz.inc.phpの設定を行います。 プログラムの起動時にLANG環境変数を日本語ロケールに指定します:

define('PLUGIN_GRAPHVIZ_DOT' 'LANG=ja_JP.EUC-JP /usr/bin/dot');
#他のgraphvizのプログラムも同様。convertは変更の必要なし。
define('PLUGIN_GRAPHVIZ_MACRO_FONTNAME','"san serif"');
  • 2005-02-24 (木) 11:58:04
    標準でUTF8化するようにしました(Rev1.4)。文字コードはPLUGIN_GRAPHVIZ_CHARSETで指定できます。
  • 2005-02-24 (木) 11:58:04
    PLUGIN_GRAPHVIZ_OPT_*はマクロの導入に伴い廃止しました(Rev1.4)。
  • 2006-01-23 (月) 12:19:53
    PLUGIN_GRAPHVIZ_MACRO_FONTNAMEによる指定に改めました(Rev1.7)。

Windows

PukiWikiでの動作は未確認ですが、以下の設定で行けそうです。

DOTFONTPATH環境変数を設定します。コマンドプロンプトでこんな表示になるように:

>echo %DOTFONTPATH%
C:\WINNT\Fonts

graphviz.inc.phpの設定を行います。graphvizプログラムのパスにはexeファイルの絶対パスをショート形式(空白文字を含めない)で指定します:

define('PLUGIN_GRAPHVIZ_DOT' 'c:\Somewhere\dot.exe');
# 他のgraphvizプログラムも同様
define('PLUGIN_GRAPHVIZ_SIMPLE_EXEC', TRUE);
define('PLUGIN_GRAPHVIZ_MACRO_FONTNAME', '"MSGOTHIC.TTC"');
  • 2006-01-23 (月) 12:19:53
    PLUGIN_GRAPHVIZ_MACRO_FONTNAMEによる指定に改めました。(Rev1.7)

MacOSX

graphvizは本家サイトで紹介されているhttp://www.pixelglow.com/graphviz/ から入手しApplicationsにインストールします。以下の設定はconvertをFinkから入れた場合です。

graphviz.inc.phpの設定を行います:

define('PLUGIN_GRAPHVIZ_DOT' '/Applications/Graphviz.app/Contents/MacOS/dot');
# 他のgraphvizプログラムも同様
define('PLUGIN_GRAPHVIZ_TRANSP_CMD', '/sw/bin/convert -transparent white png:- png:-');
define('PLUGIN_GRAPHVIZ_MACRO_FONTNAME', '"HiraMaruPro-W4"');
  • 2006-01-23 (月) 12:19:53
    PLUGIN_GRAPHVIZ_MACRO_FONTNAMEによる指定に改めました。(Rev1.7)

その他

ご存知でしたら是非教えてください。

備考

TODO

コメント



添付ファイル: filegraphviz.inc.php.11 1123件 [詳細] filegraphviz.inc.php.10 1040件 [詳細] filegraphviz_ja_sample.png 1120件 [詳細] filegraphviz.inc.php.9 3290件 [詳細] filegraphviz.inc.php.8 2510件 [詳細] filenihongo.png 2231件 [詳細] filemacro.png 2200件 [詳細] filegraphviz.inc.php.7 2304件 [詳細] filegraphviz.inc.php.6 2430件 [詳細] filegraphviz.inc.php.5 2229件 [詳細] filegraphviz.inc.php.4 1147件 [詳細] filegraphviz.inc.php.3 2319件 [詳細] filegraphviz.inc.php.2 2393件 [詳細] fileconvert_html.php.diff 2210件 [詳細] filesample.png 990件 [詳細] filegraphviz.inc.php 2448件 [詳細]

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2023-11-21 (火) 23:42:13
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 8.2.12. HTML convert time: 1.189 sec.

SourceForge