graphviz 可视化工具,能简便地绘制出漂亮的网络图。
graphviz 使用dot语言描述网络(点和边组成),dot 语言语法简单很容易学会。
图的类型:
有向图 directed graph
无向图 undirected graph
语法:
digraph G{…}
graph G{…}
有向图用的编译程序是 dot,无向图则用 neato。
命令如下:
dot -T[output_filetype] [-G[option_name]] -o [output_filename] [input_filename]
neato -T[output_filetype] [-G[option_name]] -o [output_filename] [input_filename]
使用 .dot 作为后缀,这样 vim 能语法高亮,方便编辑。
如果点里面使用中文怎麼办?
需要做如下2件事,否则编译出的图显示中文乱码:
一是把文档保存为 UTF8 编码格式。vim 命令如下
:set enc=utf8
:set fileencoding=utf8
说明使用的字体 fontname。
例如:
example.dot
-
digraph G {
-
edge [fontname="FangSong"];
-
node [shape=box, fontname="SimSun" size="20,20"];
-
{
-
Lexical_Analyzer [label="词法分析器"];
-
Syntax_Analyzer [label="语法分析器" ];
-
Semantic_Analyzer [label="语义分析" ];
-
Intermediate_Code_Generator [label="中间代码生成器" ];
-
Machine_Independent_Code_Optimizer [label="机器无关代码优化器" ];
-
Code_Generator [label="代码生成器" ];
-
Machine_Dependent_Code_Optimizer [label="机器相关代码优化器" ];
-
}
-
node[shape=plaintext, fontname="KaiTi" ]{
-
character_stream [label="字符流"];
-
target_machine_code [label="目标机器语言" ];
-
}character_stream ->Lexical_Analyzer;
-
Lexical_Analyzer ->Syntax_Analyzer [label="符号流"];
-
Syntax_Analyzer ->Semantic_Analyzer [label="语法树"];
-
Semantic_Analyzer ->Intermediate_Code_Generator [label="语法树"] ;
-
Intermediate_Code_Generator->Machine_Independent_Code_Optimizer [label="中间表示形式"];
-
Machine_Independent_Code_Optimizer ->Code_Generator [label="中间表示形式"];
-
Code_Generator ->Machine_Dependent_Code_Optimizer [label="目标机器语言"];
-
Machine_Dependent_Code_Optimizer->target_machine_code ;
-
}
编译图:
F:\Program Files\Graphviz\release\bin\dot.exe -Tjpg
example.dot -o
example.jpg
结果:
更多 Graphviz 示例见官方网站:
Gallery | Graphviz - Graph Visualization Software
阅读(11960) | 评论(0) | 转发(0) |