Graphvizの出力サイズ指定 (2)
前回に引き続き、Graphvizの出力サイズ指定に関する説明です。今回はpage属性の指定について説明します。size属性とpage属性を併用することにより、出力サイズの正確な指定が可能となります。動作確認に使用したバージョンは、2.26.3(最新の安定版)です。(前回: id:simply-k:20100804:1280880922)
size属性について
前回の記事で説明したように、size属性を指定すると出力サイズを変更することができます。しかし、出力サイズが指定どおりのサイズになる保証はありませんでした。
page属性について
page属性は、ページサイズの指定に使われる属性です。ただし、グラフを複数ページに分割して出力できるのは、現状ではPostScript形式のみです。それ以外の形式でpage属性を指定した場合、1ページ目のみが出力され、それ以外のページは無視されます。このため、PostScript以外の形式では、通常はpage属性を指定しません。
しかし、page属性には、出力サイズを正確に指定できるという特徴があります。これは、印刷サイズや画面サイズを意識して、特定サイズの画像を出力したい場合に、都合のよい特徴です。そこで、今回の記事では、このpage属性をうまく利用する方法について説明します。
(1)ページ指定なし
ページ指定なしの場合です。ここでは明示的に「page=""」としていますが、書かなくても構いません。
digraph G { graph [page=""] node [fontname="Arial"] Size -> Test }
(2)ページ指定 (1ページ)
page属性を指定します。ページ指定なしの場合に横1インチ×縦2インチ程度だったため、これを確実に超えるサイズとして、横2.0インチ×縦3.0インチを指定します。
digraph G { graph [page="2.0,3.0"] node [fontname="Arial"] Size -> Test }
画像が指定サイズ(横2.0インチ×縦3.0インチ)で出力されました。1ページのサイズが十分大きいため、グラフは完全に出力され、余白ができています。
(3)ページ指定 (複数ページ)
page属性を指定します。ページ指定なしの場合に横1インチ×縦2インチ程度だったため、これが確実に収まらないサイズとして、横0.5インチ×縦1.0インチを指定します。
digraph G { graph [page="0.5,1.0"] node [fontname="Arial"] Size -> Test }
画像が指定サイズ(横0.5インチ×縦1.0インチ)で出力されました。ただし、出力されたのは、左下の1ページのみです。*1
(4)サイズ指定とページ指定 (縮小なし)
size属性とpage属性で同じ値を指定します。ページ指定なしの場合に横1インチ×縦2インチ程度だったため、これを確実に超えるサイズとして、横2.0インチ×縦3.0インチを指定します。
digraph G { graph [size="2.0,3.0", page="2.0,3.0"] node [fontname="Arial"] Size -> Test }
画像が指定サイズ(横2.0インチ×縦3.0インチ)で出力されました。size属性を指定すると、グラフが指定サイズに収まるように調整されます。ただし、この例では、元々調整が不要だったため、グラフのサイズは変わっていません。結果的に、(2)と同じ出力となりました。
(5)サイズ指定とページ指定 (縮小あり)
size属性とpage属性で同じ値を指定します。ページ指定なしの場合に横1インチ×縦2インチ程度だったため、これが確実に収まらないサイズとして、横0.5インチ×縦1.0インチを指定します。
digraph G { graph [size="0.5,1.0", page="0.5,1.0"] node [fontname="Arial"] Size -> Test }
画像が指定サイズ(横0.5インチ×縦1.0インチ)で出力されました。また、size属性の影響で、指定サイズにちょうど収まるようにグラフが縮小されました。
(6)中央寄せ (縮小なし)
(4)と同じように、size属性とpage属性を指定します。中央寄せで出力するため、「center=true」を指定します。
digraph G { graph [size="2.0,3.0", page="2.0,3.0", center=true] node [fontname="Arial"] Size -> Test }
(4)のケースと異なり、グラフが中央に出力されています。*2
(7)中央寄せ (縮小あり)
(5)と同じように、size属性とpage属性を指定します。中央寄せで出力するため、「center=true」を指定します。
digraph G { graph [size="0.5,1.0", page="0.5,1.0" center=true] node [fontname="Arial"] Size -> Test }
(5)のケースと異なり、グラフが中央に出力されています。*3
今回のまとめ
- graphのsize属性とpage属性で同じ値を指定すると、正確な出力サイズ指定が可能となる。
- 出力サイズは、確実にpage属性で指定したサイズとなる。
- グラフが1ページに収まる場合、グラフのサイズは変わらない。(余白ができる) *4
- グラフが1ページに収まらない場合、グラフは出力サイズに合わせて縮小される。
- center属性をtrueに設定することにより、グラフを中央に出力することができる。
これで、Graphvizの出力サイズ指定に関する説明は終わりです。(前回: id:simply-k:20100804:1280880922)