使用方法
$ dot -Tplain input.dot
$ dot -Tplain-ext input.dot

プレーンテキスト

シンプルで、行ベースの言語

plainとplain-ext形式は、シンプルで、行ベースの言語を使用して出力を生成します。後者の形式は、エッジにおいて、該当する場合、ヘッドノードとテイルノードにポート名を付加することで異なります。

エッジで接続された2つのノードを持つ単純なグラフの出力例

-Tplain

$ echo 'digraph { a->b }' | dot -Tplain
graph 1 0.75 1.5
node a 0.375 1.25 0.75 0.5 a solid ellipse black lightgrey
node b 0.375 0.25 0.75 0.5 b solid ellipse black lightgrey
edge a b 4 0.375 0.99579 0.375 0.88865 0.375 0.7599 0.375 0.64045 solid black
stop
-Tplain-ext

$ echo 'digraph { a->b }' | dot -Tplain-ext
graph 1 0.75 1.5
node a 0.375 1.25 0.75 0.5 a solid ellipse black lightgrey
node b 0.375 0.25 0.75 0.5 b solid ellipse black lightgrey
edge a b 4 0.375 0.99579 0.375 0.88865 0.375 0.7599 0.375 0.64045 solid black
stop

4種類のステートメントがあります。

 graph scale width height
 node name x y width height label style shape color fillcolor
 edge tail head n x₁ y₁ .. xₙ yₙ [label xl yl] style color
 stop
graph
widthheightの値は、図の幅と高さを示します。図の左下隅は原点です。scaleの値は、size属性が指定され、図をそのサイズに合わせるためにスケーリングする必要がある場合、図をどのようにスケーリングするかを示します。スケーリングが不要な場合は、1.0に設定されます。すべてのグラフ、ノード、エッジの座標と長さは、スケールされていない状態で与えられることに注意してください。
node
nameの値はノードの名前で、xyはノードの位置を示します。widthheightはノードの幅と高さです。labelstyleshapecolorfillcolorは、それぞれノードのラベルスタイル形状塗りつぶしの色を示し、必要に応じて属性のデフォルト値を使用します。ノードにstyle属性がない場合は、「solid」が使用されます。
edge
tailheadの値は、ヘッドノードとテイルノードの名前を示します。plain-ext形式では、エッジがポートでノードに接続している場合、ヘッドまたはテイルの名前にコロンとポート名が追加されます。nは、エッジを形成するBスプラインを定義する制御点の数です。その後に、テイルからヘッドの順に制御点のx座標とy座標を2*n個の数字で示します。エッジにラベルがある場合、そのラベルの位置のx座標とy座標がその後に続きます。エッジの説明は、エッジのスタイルで完了します。ノードと同様に、スタイルが定義されていない場合は「solid」が使用されます。

注:エッジステートメントに示されている制御点は、エッジの本体を定義します。特に、エッジがヘッドノードまたはテイルノードに矢印の先端を持っている場合、最後の制御点または最初の制御点と関連ノードの境界の間に隙間があります。この隙間を処理する方法は、少なくとも3つあります。

  • 入力グラフが、すべてエッジについてdir=nonearrowhead=none、またはarrowtail=noneを使用するように設定します。この場合、終端制御点は常にノードに接します。
  • 制御点とノードの中心点を結ぶ線分を考慮し、線分がノードの境界と交わる点を決定します。次に、制御点と交点を使用して、矢印の先端の主要な軸を決定します。このアプローチの問題は、エッジにポートがある場合、エッジがノードの中心を指していないことです。この場合、制御点と中心点を使用するのではなく、制御点とその接線を使用できます。
  • 入力グラフがheadclip=falseまたはtailclip=falseを使用するように設定します。この場合、エッジはノードの境界ではなく中心で終了します。矢印の先端を使用する場合でも隙間は残りますが、通常はノード内で行われます。アプリケーションは、スプラインをノードの境界にクリッピングする必要があります。また、前項と同様に、エッジがノードポートを指している場合、この手法は失敗します。

出力は、1つのgraph行、ノードごとに1つのnode行のシーケンス、エッジごとに1つのedge行のシーケンス、そして最後のstop行で構成されます。すべての単位はインチで、浮動小数点数で表されます。

plain形式は最小限の情報しか提供せず、ノードの位置とサイズ、エッジのスプライン制御点以上の情報を与えないことに注意してください。これらの形式は、通常、この幾何学的情報だけを必要とし、すべてのグラフィックの詳細を自分で補完するアプリケーションにとって最も有用です。これらの形式の唯一の真の利点は、簡潔さと解析の容易さです。一般的に、dotxdotは、提供される情報の量に関して好ましいです。