Graphviz

Graphviz 是一个自动排版的作图软件,可以生成 png pdf 等格式。

一切以官方文档为准,博客只是参考。这里做一个自己学习的记录。

dot 语言

Graphviz 构建组件为 图,节点,边,用属性对其进行描述。

以下是定义DOT语言的抽象语法,约束的规则如下:

  • 元素的终止以 粗体 显示
  • 文字字符用单引号 '' 引起来
  • 圆括号 () 的内容为必选项
  • 方括号 [] 为可选项目
  • 竖杠 | 为择一选择
声明 结构
graph strict ] (graph | digraph) [ ID ] '{' stmt_list '}'
stmt_list [ stmt [ ';' ] stmt_list ]
stmt node_stmt | edge_stmt | attr_stmt | ID '=' ID | subgraph
attr_stmt (graph | node | edge) attr_list
attr_list '['** [ a_list ] **']' [ attr_list ]
a_list ID '=' ID [ (';' | ',') ] [ a_list ]
edge_stmt (node_id | subgraph) edgeRHS [ attr_list ]
edgeRHS edgeop (node_id | subgraph) [ edgeRHS ]
node_stmt node_id [ attr_list ]
node_id ID [ port ]
port ':' ID [ ':' compass_pt ] | ':' compass_pt
subgraph subgraph [ ID ] ] '{' stmt_list '}'
compass_pt (n | ne | e | se | s | sw | w | nw | c | _)

ID 其实就是一个字符串,为该组件的名称或者属性的名称,命名规则如下:

  1. 所有的字母 [a-zA-Z\200-\377] 下划线,数字 [0-9],数字不能出现在起始位置
  2. 纯数字