graphviz

graphviz

熱門

使用 DOT 語言建立有向/無向圖,並自動排版。最適合相依性樹狀圖、呼叫圖、套件階層圖及需要精細邊緣路線的模組關係圖。

3093星標
178分支
更新於 2026/5/26
SKILL.md
唯讀
名稱
graphviz
描述

使用 DOT 語言建立有向/無向圖,並自動排版。最適合相依性樹狀圖、呼叫圖、套件階層圖及需要精細邊緣路線的模組關係圖。

Graphviz DOT 圖表產生器

重要: 請使用 ```dot 作為程式碼圍欄識別碼,而非 ```graphviz

快速入門: 選擇 digraph (有向) 或 graph (無向) → 定義節點及其屬性 (形狀、顏色、標籤) → 使用 ->-- 連接 → 設定佈局 (rankdir、間距) → 包在 ```dot 圍欄中。預設:由上到下 (rankdir=TB),叢集名稱必須以 cluster_ 開頭,使用分號。


關鍵語法規則

規則 1:叢集命名

❌ subgraph backend { }      → 不會顯示為方框
✅ subgraph cluster_backend { }  → 必須以 cluster_ 開頭

規則 2:含空格的節點 ID

❌ API Gateway [label="API"];    → 無效 ID
✅ "API Gateway" [label="API"];  → 用引號括住 ID
✅ api_gateway [label="API Gateway"];  → 使用底線 ID

規則 3:邊緣語法差異

digraph: A -> B;   → 有向箭頭
graph:   A -- B;   → 無向線條

規則 4:屬性語法

❌ node [shape=box color=red]    → 缺少逗號
✅ node [shape=box, color=red];  → 逗號分隔

規則 5:HTML 標籤

✅ 使用 shape=plaintext 搭配 HTML 標籤
✅ 使用 < > 而非 " " 作為 HTML 內容

常見陷阱

問題 解決方案
節點重疊 增加 nodesepranksep
佈局不佳 變更 rankdir 或加入 {rank=same}
邊緣交叉 使用 splines=ortho 或調整節點順序
叢集未顯示 名稱必須以 cluster_ 開頭
標籤未顯示 檢查引號跳脫

輸出格式

```dot
digraph G {
    [圖表程式碼]
}
```

相關檔案

如需進階佈局控制與複雜樣式,請參考以下文件:

  • syntax.md — 佈局控制 (rankdir、splines、rank)、HTML 標籤、邊緣樣式、叢集子圖與記錄型節點