zoukankan      html  css  js  c++  java
  • graphviz 的绘图布局

          graphviz是贝尔实验室开发的一个开源的工具包,它使用一个特定的DSL(领域特定语言):dot作为脚本语言,然后使用布局引擎来解析此脚本,并完成自动布局。

    graphviz中包含了众多的布局器:

    • dot 默认布局方式,主要用于有向图
    • neato 基于spring-model(又称force-based)算法   基于斥力+张力的布局
    • twopi 径向布局
    • circo 圆环布局
    • osage
    • fdp 用于无向图
    • sfdp 用于无向图

    有向图相关布局

    除了 fdp 之外,其他都可以适用于 有向图。 对下面有向图采用不同布局器产生的效果如下:

    有向图的定义用关键字digraph定义一个有向图,用“ -> ”表示节点之间的关系

    digraph G {
        main -> parse -> execute;
        main -> init;
        main -> cleanup;
        execute -> make_string;
        execute -> printf
        init -> make_string;
        main -> printf;
        execute -> compare;
    }

     

    dot 布局

    dot 22.gv  -Kdot -Tpng -o 22dot.png

    由于 Kdot 是默认, 所以可以简化成  dot 22.gv  -Tpng -o 22dot.png

    image

    circo 布局

    命令: dot 22.gv  -Kcirco -Tpng -o 22circo.png

    圆环布局

    image

     

    neato 布局

    命令: dot 22.gv  -Kneato -Tpng -o 22neato.png

    image

     

    twopi 布局

    命令:dot 22.gv  -Ktwopi -Tpng -o 22twopi.png

    image

    osage 布局

     

    image

     

    无向图的布局

    无向图的定义用关键字graph定义一个无向图,用“ - - ”表示节点之间的关系,如下:

     

    graph test123 {
        a -- b -- c;
        a -- {x y};
        x -- c ;
        x -- y ;
    }

    dot 布局

    dot 33.gv  -Kdot -Tpng -o 33dot.png

     

    image

     

    circo 布局

    dot 33.gv  -Kcirco -Tpng -o 33circo.png

    image

     

    neato 布局

    dot 33.gv  -Kneato -Tpng -o 33neato.png

    image

     

    twopi 布局

    dot 33.gv  -Ktwopi -Tpng -o 33twopi.png

    image

     

    osage 布局

    dot 33.gv  -Kosage -Tpng -o 33osage.png

    image

     

    fdp布局

    dot 33.gv  -Kfdp -Tpng -o 33fdp.png

    image

     

    sfdp布局

    dot 33.gv  -Ksfdp -Tpng -o 33sfdp.png

    image

    DOT 语言

    http://lesliezhu.github.io/public/dot-begin.html

     

    相关命令行参数请参考:

    http://www.cnblogs.com/ghj1976/p/4935541.html

  • 相关阅读:
    查看Eclipse的版本
    eclipse3.7.1加载swt失败(转载)
    [转载]android的常用开发包
    JSP 两种注释的区别,代码段
    Delphi TAdvStringGrid 在表格显示出下拉列表
    Delphi TAdvStringGrid的回车换格功能
    Delphi TAdvStringGrid表格录入汉字总是给省略两个字的原因。
    Mac 终端命令大全
    Mac OS 下三种修改Hosts文件的方法
    Memcached与Memcache区别
  • 原文地址:https://www.cnblogs.com/ghj1976/p/4939773.html
Copyright © 2011-2022 走看看