$ 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
。
其他繪圖屬性可以出現在節點、邊緣、叢集和圖形本身。有六個新的屬性
屬性 | 描述 | 限制 |
---|---|---|
draw |
不含標籤的一般繪圖 | |
ldraw |
標籤繪圖 | |
hdraw |
頭部箭頭 | 僅限邊緣 |
tdraw |
尾部箭頭 | 僅限邊緣 |
hldraw |
頭部標籤 | 僅限邊緣 |
tldraw |
尾部標籤 | 僅限邊緣 |
對於給定的圖形物件,通常會在標籤指令之前發出繪製指令。例如,對於節點,會先使用 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
旗標 值 最小版本 粗體
1 斜體
2 底線
4 上標
8 下標
16 (1.5) 刪除線
32 (1.6) 頂線
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 樣條)表示兩個操作:首先,使用目前的填滿顏色繪製填滿的圖形;其次,使用目前的筆顏色、筆寬度和筆樣式繪製未填滿的圖形。
在單一繪圖屬性(例如 draw
)的上下文中,圖形屬性有一個隱含的狀態。也就是說,一旦設定了顏色、樣式、字型或字型特性,它對於所有相關的繪圖操作都保持有效,直到另一個 xdot 命令重設該值。
可以納入圖形模型的樣式值不會出現在 xdot 輸出中。特別是,樣式值 filled
、rounded
、diagonals
和 invis
不會出現。事實上,如果樣式包含 invis
,則根本不會有任何 xdot 輸出。
從 xdot 1.4 版開始,顏色字串現在可以編碼線性漸層和放射狀漸層。線性漸層的形式為
'[' x₀ y₀ x₁ y₁ n [顏色停止點]⁺ ']'
其中 (x₀,y₀) 和 (x₁,y₁) 定義漸層線段的起點和終點,而 n 給出顏色停止點的數量。每個顏色停止點的形式為
v m -b₁b₂...bₘ
其中 v 是範圍 [0,1] 中的一個數字,定義漸層線段上的位置,其顏色由 m 位元組字串 b₁b₂...bₘ 指定,其格式與 'c' 和 'C' 操作中使用的顏色相同。
放射狀漸層的形式為
'(' x₀ y₀ r₀ x₁ y₁ r₁ n [顏色停止點]⁺ ')'
其中 xⱼ yⱼ rⱼ,對於 j=0,1,指定起點和終點圓的中心和半徑,而 n 給出顏色停止點的數量。顏色停止點的格式與線性漸層的定義相同,再次給出小數偏移量及其相關聯的顏色。
在處理文字對齊時,應用程式可能想要使用自己的渲染原語重新計算字串寬度。
文字操作僅在標籤屬性中使用。通常,非文字操作僅在非標籤屬性中使用。但是,如果在邊緣上設定了 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 新增刪除線位元 |
>1.7 | 2.37 | 為 t 新增上橫線 |
-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"];
}