我使用过的Linux命令之twopi - 用于放射状图形的生成

Pig00 2011-07-11

我使用过的Linux命令之twopi - 用于放射状图形的生成

用途说明

    twopi命令可用于绘制DOT语言脚本描述的图形,它生成放射状的图形(filter for radial layouts of graphs)。twopi是DOT图形描述语言工具包Graphviz的其中一个,本系列的“我使用过的Linux命令之dot - 绘制DOT语言脚本描述的图形”讨论过dot命令。下面是维基百科关于Graphviz的说明:

http://zh.wikipedia.org/wiki/Graphviz 写道
Graphviz由一种被称为DOT语言的图形描述语言[3] 与一组可以生成和/或处理DOT文件的工具组成:

dot

一个用来将生成的图形转换成多种输出格式的命令行工具。其输出格式包括PostScript,PDF,SVG,PNG,含注解的文本等等。

neato

用于sprintmodel的生成(在MacOS版本中称为energyminimized)。

twopi

用于放射状图形的生成

circo

用于圆形图形的生成。

fdp

另一个用于生成无向图的工具。

dotty

一个用于可视化与修改图形的图形用户界面程序。

lefty

一个可编程的(使用一种被EZ影响的语言[4])控件,它可以显示DOT图形,并允许用户用鼠标在图上执行操作。Lefty可以作为MVC模型的使用图形的GUI程序中的视图部分。
 

常用参数

twopi命令的输入内容必须是UTF-8编码的,所以可能需要把输入文件转换成UTF-8的,下面简单介绍下iconv编码转换工具的使用。

可以参看本系列中的“我使用过的Linux命令之iconv - 字符编码转换工具”。

格式:iconv -f <source_encoding> -t <dest_encoding> <text_file>

将<text_file>指定的文本文件,由<source_encoding>编码方式转换为<dest_encoding>编码方式。

输出将显示在标准输出上,可以使用重定向保存到另外的文件中。

格式:iconv -f <source_encoding> -t <dest_encoding> <text_file> -o <output_file>

与上面大体相似,增加了-o <output_file>部分,将转换结果直接保存在<output_file>指定的文件中。

格式:twopi -T<output_format> <gv_file> -o<output_file>

将<gv_file>指定的DOT源文件,生成<output_format>格式的放射状图形,保存到<output_file>指定的文件中。

使用示例

示例一 用于生成表间关系的图形

[root@jfht ~]# cat ehr_object.gv

graphG{

ranksep=3;

"员工\nehr_staff_info"--"民族\nehr_nation_info"[taillabel="n",label="nation_id",headlabel="1"];

"员工\nehr_staff_info"--"血型\nehr_blood_type"[taillabel="n",label="blood_type",headlabel="1"];

"员工\nehr_staff_info"--"婚姻状况\nehr_marital_status"[taillabel="n",label="marital_status",headlabel="1"];

"员工\nehr_staff_info"--"健康状况\nehr_health_state"[taillabel="n",label="health_state",headlabel="1"];

"员工\nehr_staff_info"--"地区信息\nehr_region_info"[taillabel="n",label="home_region",headlabel="1"];

"员工\nehr_staff_info"--"地区信息\nehr_region_info"[taillabel="n",label="\nwork_region",headlabel="1"];

"履历\nehr_career_info"--"员工\nehr_staff_info"[taillabel="n",label="staff_id",headlabel="1"];

}

[root@jfht~]#iconv-fgbk-tutf8ehr_object.gv>ehr_object_utf8.gv;twopi-Tgifehr_object_utf8.gv-oehr_object.gif

[root@jfht~]#fileehr_object*

ehr_object.gif:GIFimagedata,version89a,762x665

ehr_object.gv:ISO-8859text

ehr_object_utf8.gv:UTF-8Unicodetext

[root@jfht ~]#

我使用过的Linux命令之twopi - 用于放射状图形的生成

示例二 没有了

更多示例查看相关资料啦。

问题思考

相关资料

【1】维基百科 Graphviz

http://zh.wikipedia.org/wiki/Graphviz

【2】一直等你 使用 graphviz 形象化有向图

http://hi.baidu.com/einyboy/blog/item/148bd68ed9ec6be6f11f367c.html

【3】横行青海夜带刀用graphviz画图

http://abruzzi.iteye.com/blog/433278

返回 我使用过的Linux命令系列总目录

相关推荐