Graphviz 试用

Graphviz能做什么?

http://www.graphviz.org/Gallery.php

cluster crazy datastruct fsm

  hello profile sdh switch

unix world twopi2 ER

  fdpclust process softmaint transparency

用Graphviz来画图 1

       做了一个系统,通过配置来完成一些简单或者复杂的产品逻辑, 系统投入使用以后, 产品人员在上面配置了不少产品,产品的流程都是存放在一个xml里面,前几天突然有个想法, 打算把这个流程通过图形表示出来, 于是打开google,上网查找java画图的工具,找来找去,没有看到什么好用的免费库,商业的又觉得破解太麻烦,于是无意中找到Graphviz,初 步使用以后,发现这个工具真的是很强大。除了不能用java直接操作以外,画各种流程图,网络图,简直是异常简单,而且画图的效果也很好。

      Graphviz的主页在http://www.graphviz.org/ , 他是AT&T Labs-Research开发的图形绘制工具他可以很方便的用来绘制结构化的图形网络,支持多种格式输出, 生成图片的质量和速度都不错

      Graphviz本身是开源的产品,下载可以到 这里 ,以及他的演示界面   Graphvizwindows上和Linux上都可以顺利运行

      安装好Graphviz以后, Graphviz的默认命令会自动添加到命令行走, 使用它很简单,我们需要写一个dot文件, 格式如下

/*注释的格式, 很熟悉吧*/

/*digraph 表示一个有向图 */
    digraph G {

    "A"->"B"
        }

把上面的内容保存为test.dot以后,在命令行下通过"dot test.dot  -Tpng -o result.png" 就会在当前目录生成test.png,,非常方便
t_cap.png

可选的还有 –Tjpg … .jpg 生成jpg文件,等等。
具体的dot格式可以查阅系统的pdf文档,  我可以给出一个复杂一点的小例子和windows下面中文解决办法

digraph G {

        graph [
         ratio="auto"
         label="hello ,
我的测试
         labelloc=t
            fontname="simyou.ttf"
        ];
     node  [
      shape="box",
      style="dotted",
      fontname="simyou.ttf",
      fontsize="10"
     ];
     edge  [ fontname="simyou.ttf"];

        "
张三"
        [
         peripheries=2,
         style=filled,
         label="
市民张三"
         color="#eecc80"
     ];
 "
李四"[
  style=filled,
         label="
农民李四"
         color="#eecc80"
 ];
 "
王五"[
  style=filled,
         label="
农民王五"
         color="#eecc80"
 ];
        "
张三"->"李四"[label="亲戚"];
 "
张三"->"王五"[label="朋友"];
 "
李四"->"王五"[label="不认识"];
  
}

windows下面 ,把文件保存为utf-8格式,然后在文件中设置  fontname="simyou.ttf"(也可以通过命令行参数-E -N -G fontname="xx" 设置),在我的简体中文windowsxp中生成的图片是可以正常显示中文的。
o_cap.jpg

通过java来调用Graphviz的方法,代码如下

记 得通过通过freemarker来生成dot脚本以后,必须要在本地保存为utf-8,然后用dot去处理, 直接通过管道传String的方法是不行的。我试过多种编码,全部都失败了,另外就是simyou.ttf是字体文件的名字,可以到你的windows/ fonts/目录下面找到他们的列表

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值