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

circo 布局

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

圆环布局

 

neato 布局

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

 

twopi 布局

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

osage 布局

 

 

无向图的布局

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

 

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

dot 布局

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

 

 

circo 布局

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

 

neato 布局

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

 

twopi 布局

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

 

osage 布局

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

 

fdp布局

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

 

sfdp布局

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

DOT 语言

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

 

相关命令行参数请参考:

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

graphviz 的绘图布局的更多相关文章

  1. R语言绘图布局

    在R语言中,par 函数可以设置图形边距,其中oma 参数设置outer margin, mar 参数设置margin, 这些边距有什么不同呢,通过box函数可以直观的看到 box 默认在当前图形绘制 ...

  2. graphviz 决策树绘图中文乱码解决方法

    1.修改graphviz配置文件 <dir>C:\WINDOWS\Fonts</dir> 更改为 <dir>~/.fonts</dir> 2.将决策树d ...

  3. R绘图布局包 customLayout

    今天介绍一个R画图布局的包,地址如下: https://github.com/zzawadz/customLayout https://www.customlayout.zstat.pl/index. ...

  4. 算法图绘制工具Graphviz

    graphviz是贝尔实验室设计的一个开源的画图工具,它的强大主要体现在“所思即所得"(WYTIWYG,what you think is what you get),这是和office的“ ...

  5. 转+更新 Graphviz 教程,例子+ 高级应用 写代码,编程绘制架构图(分层拓扑图) 转自官网

    1. Graphviz介绍 Graphviz是大名鼎鼎的贝尔实验室的几位牛人开发的一个画图工具. 它的理念和一般的“所见即所得”的画图工具不一样,是“所想即所得”. Graphviz提供了dot语言来 ...

  6. R绘图基础

    一,布局 R绘图所占的区域,被分成两大部分,一是外围边距,一是绘图区域. 外围边距可使用par()函数中的oma来进行设置.比如oma=c(4,3,2,1),就是指外围边距分别为下边距:4行,左边距3 ...

  7. 使用egypt+graphviz生成函数调用关系图示例

    总结: make  (-fdump-rtl-expand)  去除编译优化,比如-O3 egypt test.c.128r.expand >test.dot  可以手动打开dot文件去除一些孤立 ...

  8. Ubuntu下doxygen+graphviz使用概录

    关键词:doxygen.Doxyfile.doxywizard.dot.graphviz等等. 使用doxygen从源码注释生成帮助文档或者SDK,输出格式有多种比如htmp.Latex等等. 如果想 ...

  9. jsplumb 中文教程

    https://wdd.js.org/jsplumb-chinese-tutorial/#/ 1. jsplumb 中文基础教程 后续更新会在仓库:https://github.com/wangdua ...

随机推荐

  1. docker rpm 下载地址

    http://yum.dockerproject.org/repo/main/centos/7/Packages/

  2. Python(网络基础)

    day33 参考:http://www.cnblogs.com/linhaifeng/articles/5937962.html IP协议: 规定网络地址的协议叫ip协议,它定义的地址称之为ip地址, ...

  3. 匹配img标签的正则表达式

    $preg = '/<img.*?src=[\"|\']?(.*?)[\"|\']?\s.*?>/i';//匹配img标签的正则表达式 preg_match_all($ ...

  4. 基于jeesite+android开发 电子商务系统免费教程

    下载地址: jeesite免费教程 基于jeesite+android开发 电子商务系统免费教程 基于jeesite+android开发 电子商务系统免费教程 这个教程已经录制完很久了,一直没有公开, ...

  5. HTML+纯JS制作音乐播放器

    该篇文章会教你通过JavaScript制作一个简单的音乐播放器.包括播放.暂停.上一曲和下一曲. 阅读本文章你需要对HTML.CSS和Javascript有基本的了解. 话不多说,先上图. emmm. ...

  6. JavaScript把函数作为另一函数的参数

    首先说一下这个问题是怎么产生的:今天看排序算法,想要比较不同的排序算法的时间花费. 最简单的时间统计方法是在程序块开始和结束时分别计时,求一下时间差就能得出该段代码的耗时. 如: var foo = ...

  7. Markdown 常用操作

    1->水平线 注意,使用时发现,水平线的语句上一行必须为空行,不然水平线不生效 *** 或者 --- ------->效果: 2->标题 # 大 ## 大 ### 大 #### 大 ...

  8. 目标检测算法—YOLO-V1

    为什么会叫YOLO呢? YOLO:you only look once.只需要看一眼,就可以检测识别出目标,主要是突出这个算法 快 的特点.(原文:Yolo系列之前的文章:主要是rcnn系列的,他们的 ...

  9. appt查看应用包报名和入口页面

    appt在哪里? aapt不需要另外安装喔,有安装了adt的,可以直接在adt../sdk/build-tools/android-xx/下,找到aapt,详细路径如图 怎么使用aapt.bat? 直 ...

  10. POJ 1118

    #include<iostream> #include<set> #include<stdio.h> #include<math.h> #include ...