$ dot -Tcanon input.dot $ dot -Tdot input.dot $ dot -Tgv input.dot $ dot -Txdot input.dot $ dot -Txdot1.2 input.dot $ dot -Txdot1.4 input.dot
DOT
これらの形式は、dot言語で出力を生成します。
canon
canon
を使用すると、レイアウトを実行せずに、入力の整形されたバージョンが生成されます。
-Tcanon
による標準化されたフォーマット
$ echo 'digraph { a->b }' | dot -Tcanon
digraph {
node [label="\N"];
a -> b;
}
dot / gv
dot
(およびgv
エイリアス)オプションは、属性付きdot出力を意味し、デフォルトの出力形式です。これは、グラフのレイアウト情報とともに入力を再現します。特に、bb
属性はグラフに添付され、描画のバウンディングボックスを指定します。グラフにラベルがある場合、その位置はlp
属性で指定されます。
各ノードにはpos
、width
が設定され、レコードの矩形はrects
属性で指定されます。ノードがポリゴンであり、vertices
属性が定義されている場合、この属性にはノードの頂点が含まれます。
すべてのエッジにはpos
属性が割り当てられ、エッジにラベルがある場合、ラベルの位置はlp
で指定されます。
-Tdot
によるレイアウト位置の出力
$ echo 'digraph { a->b }' | dot -Tdot
digraph {
graph [bb="0,0,54,108"];
node [label="\N"];
a [height=0.5,
pos="27,90",
width=0.75];
b [height=0.5,
pos="27,18",
width=0.75];
a -> b [pos="e,27,36.104 27,71.697 27,63.983 27,54.712 27,46.112"];
}
xdot
xdot
形式は、グラフコンポーネントの描画方法に関する詳細な情報を提供することにより、dot
形式を拡張します。これは、ノード、エッジ、およびグラフに追加の属性に依存します。
xdot
属性の種類に関するドキュメントも参照してください。
この形式は流動的です。より良い表現に関するコメントや提案は大歓迎です。形式の変更を可能にするために、Graphvizは属性xdotversion
をグラフに付けます。入力グラフにxdotversion
属性が設定されている場合、レンダラーはそのバージョンでサポートされている機能のみを出力します。xdot1.2
とxdot1.4
形式は、それぞれxdotversion=1.2
とxdotversion=1.4
を設定することと等価です。
追加の描画属性は、ノード、エッジ、クラスタ、およびグラフ自体に表示できます。6つの新しい属性があります。
属性 | 説明 | 制限事項 |
---|---|---|
draw |
ラベルなしの一般的な描画 | |
ldraw |
ラベル描画 | |
hdraw |
ヘッド矢印 | エッジのみ |
tdraw |
テール矢印 | エッジのみ |
hldraw |
ヘッドラベル | エッジのみ |
tldraw |
テールラベル | エッジのみ |
特定のグラフオブジェクトに対しては、通常、ラベル指示の前にdraw指示を発行します。たとえば、ノードの場合、最初にdraw
のコマンドを使用してから、ldraw
のコマンドを使用します。
これらの属性の値は、以下の14個のレンダリングまたは属性操作のいくつかの(多重)集合の連結で構成されます。(括弧内の数字は、操作が形式に追加されたxdotバージョンを示しています。バージョン番号がない場合は、操作が元の仕様に含まれていました。)
- E x₀ y₀ w h
- 塗りつぶされた楕円形 ((x - x₀) ÷ w)² + ((y - y₀) ÷ h)² = 1
- e x₀ y₀ w h
- 塗りつぶされていない楕円形 ((x - x₀) ÷ w)² + ((y - y₀) ÷ h)² = 1
- P n x₁ y₁ ... xₙ yₙ
- 指定されたn個の点を使用した塗りつぶされたポリゴン
- p n x₁ y₁ ... xₙ yₙ
- 指定されたn個の点を使用した塗りつぶされていないポリゴン
- L n x₁ y₁ ... xₙ yₙ
- 指定されたn個の点を使用したポリライン
- B n x₁ y₁ ... xₙ yₙ
- 指定されたn個の制御点を使用したBスプライン
- b n x₁ y₁ ... xₙ yₙ
- 指定されたn個の制御点を使用した塗りつぶされたBスプライン (1.1)
- T x y j w n -b₁b₂...bₙ
- ベースラインポイント(x,y)を使用して描画されたテキスト。テキストは
-
の後に続くnバイトで構成されます。jが-1(0,1)の場合、テキストはポイントに対して左揃え(中央揃え、右揃え)になります。値wは、ライブラリによって計算されたテキストの幅を示します。 - t f
- フォント特性の設定。整数fは、以下のORです。
フラグ 値 最小バージョン BOLD
1 ITALIC
2 UNDERLINE
4 SUPERSCRIPT
8 SUBSCRIPT
16 (1.5) STRIKE_THROUGH
32 (1.6) OVERLINE
64 (1.7) - C n -b₁b₂...bₙ
- 塗りつぶしの色の設定。カラー値は
-
の後に続くnバイトで構成されます。(1.1) - c n -b₁b₂...bₙ
- ペンの色の設定。カラー値は
-
の後に続くnバイトで構成されます。(1.1) - F s n -b₁b₂...bₙ
- フォントの設定。フォントサイズはsポイントです。フォント名は
-
の後に続くnバイトで構成されます。(1.1) - S n -b₁b₂...bₙ
- スタイル属性の設定。スタイル値は
-
の後に続くnバイトで構成されます。値の構文は、styleのstyleItemで指定されているものと同じです。(1.1) - I x y w h n -b₁b₂...bₙ
- 左下の隅が(x,y)、右上の隅が(x+w,y+h)のボックスに描画される外部指定のイメージ。イメージの名前は
-
の後に続くnバイトで構成されます。これは通常、ビットマップイメージです。ピクセルからポイントに変換した場合でも、イメージのサイズは必要なサイズ(w,h)と異なる場合があります。レンダラーが必要なスケーリングを実行すると想定されます。(1.2)
塗りつぶされた図形(楕円、多角形、Bスプライン)は、2つの操作を意味します。まず、現在の塗りつぶし色で塗りつぶされた図形を描画し、次に、現在のペン色、ペン幅、ペンスタイルで塗りつぶされていない図形を描画します。
単一の描画属性(例:draw
)のコンテキスト内では、グラフィック属性に暗黙的な状態があります。つまり、色、スタイル、フォント、またはフォント特性が設定されると、別のxdotコマンドによって値がリセットされるまで、すべての関連する描画操作に対して有効なままになります。
グラフィックモデルに組み込むことができるスタイル値は、xdot出力には表示されません。特に、スタイル値filled
、rounded
、diagonals
、およびinvis
は表示されません。実際、スタイルにinvis
が含まれている場合、xdot出力はまったく生成されません。
xdotのバージョン1.4では、カラー文字列で線形グラデーションと放射状グラデーションをエンコードできるようになりました。線形グラデーションは次の形式です。
'[' x₀ y₀ x₁ y₁ n [color-stop]⁺ ']'
ここで、(x₀,y₀)と(x₁,y₁)はグラデーション線分の始点と終点を定義し、nはcolor-stopの数を示します。各color-stopは次の形式です。
v m -b₁b₂...bₘ
ここで、vはグラデーション線分上の位置を定義する[0,1]の範囲の数値であり、色はmバイト文字列b₁b₂...bₘで指定されます。これは、「c」および「C」操作の色で使用されるものと同じ形式です。
放射状グラデーションは次の形式です。
'(' x₀ y₀ r₀ x₁ y₁ r₁ n [color-stop]⁺ ')'
ここで、j=0,1について、xⱼ yⱼ rⱼは、開始円と終了円の円の中心と半径を指定し、nはcolor-stopの数を示します。color-stopは線形グラデーションで定義されているものと同じ形式を持ち、これも分数オフセットとその関連色を指定します。
テキストの配置処理において、アプリケーションは独自のレンダリングプリミティブを使用して文字列幅を再計算することがあります。
テキスト操作は、ラベル属性でのみ使用されます。通常、非テキスト操作は、非ラベル属性でのみ使用されます。ただし、エッジにdecorate属性が設定されている場合、そのラベル属性にはポリライン操作も含まれます。さらに、ラベルが複雑なHTMLのようなラベルの場合、非テキスト操作も含まれます。
すべての座標とサイズはポイント単位です。ただし、エッジまたはノードが非表示の場合、描画操作はそれにアタッチされません。
バージョン情報
Xdotバージョン | Graphvizバージョン | 修正 |
---|---|---|
>1.0 | 1.9 | |
>1.1 | 2.8 | 最初のプラグインバージョン |
>1.2 | 2.13 | 画像演算子Iのサポート |
>1.3 | 2.31 | 数値精度の追加 |
>1.4 | 2.32 | グラデーションカラーの追加 |
>1.5 | 2.34 | テキストレイアウトの問題の修正。グラデーションの反転ベクトルの修正。バージョン固有の出力をサポート。テキスト特性のための新しいt操作 |
>1.6 | 2.35 | t にSTRIKE-THROUGHビットを追加 |
>1.7 | 2.37 | t にOVERLINEを追加 |
-Txdot
を使用してレイアウト位置と描画情報を出力します。
$ echo 'digraph { a->b }' | dot -Txdot
digraph {
graph [_draw_="c 9 -#fffffe00 C 7 -#ffffff P 4 0 0 0 108 54 108 54 0 ",
bb="0,0,54,108",
xdotversion=1.7
];
node [label="\N"];
a [_draw_="c 7 -#000000 e 27 90 27 18 ",
_ldraw_="F 14 11 -Times-Roman c 7 -#000000 T 27 86.3 0 7 1 -a ",
height=0.5,
pos="27,90",
width=0.75];
b [_draw_="c 7 -#000000 e 27 18 27 18 ",
_ldraw_="F 14 11 -Times-Roman c 7 -#000000 T 27 14.3 0 7 1 -b ",
height=0.5,
pos="27,18",
width=0.75];
a -> b [_draw_="c 7 -#000000 B 4 27 71.7 27 63.98 27 54.71 27 46.11 ",
_hdraw_="S 5 -solid c 7 -#000000 C 7 -#000000 P 3 30.5 46.1 27 36.1 23.5 46.1 ",
pos="e,27,36.104 27,71.697 27,63.983 27,54.712 27,46.112"];
}