使用 Graphviz 绘制流程图

流程图常用符号及对应的无样式 dot 语句[1]

形状 描述 DOT
使用 Graphviz 绘制流程图_第1张图片 用来表达过程的次序,用一条线由一个符号连接去到另一个符号。如果不是标准的上至下、左至右图就会加上箭头 ->
使用 Graphviz 绘制流程图_第2张图片 用来表示次要或程式的开始与完结。常以一个圆角长方形表示。通常里面会标上“开始”或“结束”或其他相关字眼,如“提交查询”或“接受产品” terminal [shape="plain" label=<
起止符号
>];
使用 Graphviz 绘制流程图_第3张图片 以长方形来代表一系列程序去改变数值、形式、数据的位置 process [shape="rectangle" label="程序"];
使用 Graphviz 绘制流程图_第4张图片 以一个菱形去显示一个条件进程,用来按情况去决定下一步走向。通常以“是/否”或“真/假”值去决定 decision [shape="diamond" label="决策判断"];
使用 Graphviz 绘制流程图_第5张图片 以平行四边形来标示数据输入或输出的过程,即填入数据或显示工作结果的步骤 io [shape="parallelogram" label="输入/输出"];
使用 Graphviz 绘制流程图_第6张图片 用来补充某步骤的额外资讯,可用一个虚线来连接一个半闭合的长方型至想注释的符号中 comment [shape="plain" margin=0 label=<
注解
>];
x -> comment [style="dotted" arrowhead="none"];
使用 Graphviz 绘制流程图_第7张图片 用一个有2条左右垂直线长方型,来表示一个已在其他地方定义了的过程 predefined [shape="plain" label=<
已定义流程
>];
使用 Graphviz 绘制流程图_第8张图片 用一个含有字母的小圆圈来连接目标流程画于同一页上 onpage [shape="circle" label="同页参考"];
使用 Graphviz 绘制流程图_第9张图片 用一个倒画的屋型来表示目标流程画于另一页上 offpage [shape="invhouse" label="换页参考"];
使用 Graphviz 绘制流程图_第10张图片 用一个圆柱来表示数据库 db [shape="cylinder" label="数据档或资料库"];
使用 Graphviz 绘制流程图_第11张图片 用一个拉长了的六角形来代表初始化或预备的过程 init [shape="hexagon" label="初始化"];

如果想要支持更复杂的符号, 请参见 How can I create custom shapes?

一个简单的流程图样例 (flowchart_demo.dot)[2]

digraph flowchart {                                                                       // terminal 	[shape="plain" label=<
起止符号
>]; // process [shape="rectangle" label="程序"]; // decision [shape="diamond" label="决策判断"]; // io [shape="parallelogram" label="输入/输出"]; // comment [shape="plain" margin=0 label=<
注解
>]; // predefined [shape="plain" label=<
已定义流程
>]; // onpage [shape="circle" label="同页参考"]; // offpage [shape="invhouse" label="换页参考"]; // db [shape="cylinder" label="数据档或资料库"]; // init [shape="hexagon" label="初始化"]; // rankdir = "LR"; start [shape="none" label=<
电灯不工作了
>]; decision_1 [shape="diamond" label="电灯接好了么?"]; comment_1 [shape="none" margin=0 label=<
some comments...
>]; // 位置决定其渲染顺序 end_1 [shape="none" label=<
接好电源
>]; decision_2 [shape="diamond" label="灯泡烧毁了么?"]; end_2 [shape="none" label=<
更换灯泡
>]; end_3 [shape="none" label=<
修理电灯
>]; start -> decision_1; decision_1 -> comment_1 [style="dashed" arrowhead="none"]; decision_1 -> end_1 [label="否"]; decision_1 -> decision_2 [label="是"]; decision_2 -> end_2 [label="否"]; decision_2 -> end_3 [label="是"]; }

dot -Kdot flowchart_demo.dot -Tpng -o flowchart-demo.png[3]

使用 Graphviz 绘制流程图_第12张图片


  1. 流程图 ↩︎

  2. The DOT Language ↩︎

  3. Command-line Invocation ↩︎

你可能感兴趣的:(使用 Graphviz 绘制流程图)