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
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 的绘图布局的更多相关文章
- R语言绘图布局
在R语言中,par 函数可以设置图形边距,其中oma 参数设置outer margin, mar 参数设置margin, 这些边距有什么不同呢,通过box函数可以直观的看到 box 默认在当前图形绘制 ...
- graphviz 决策树绘图中文乱码解决方法
1.修改graphviz配置文件 <dir>C:\WINDOWS\Fonts</dir> 更改为 <dir>~/.fonts</dir> 2.将决策树d ...
- R绘图布局包 customLayout
今天介绍一个R画图布局的包,地址如下: https://github.com/zzawadz/customLayout https://www.customlayout.zstat.pl/index. ...
- 算法图绘制工具Graphviz
graphviz是贝尔实验室设计的一个开源的画图工具,它的强大主要体现在“所思即所得"(WYTIWYG,what you think is what you get),这是和office的“ ...
- 转+更新 Graphviz 教程,例子+ 高级应用 写代码,编程绘制架构图(分层拓扑图) 转自官网
1. Graphviz介绍 Graphviz是大名鼎鼎的贝尔实验室的几位牛人开发的一个画图工具. 它的理念和一般的“所见即所得”的画图工具不一样,是“所想即所得”. Graphviz提供了dot语言来 ...
- R绘图基础
一,布局 R绘图所占的区域,被分成两大部分,一是外围边距,一是绘图区域. 外围边距可使用par()函数中的oma来进行设置.比如oma=c(4,3,2,1),就是指外围边距分别为下边距:4行,左边距3 ...
- 使用egypt+graphviz生成函数调用关系图示例
总结: make (-fdump-rtl-expand) 去除编译优化,比如-O3 egypt test.c.128r.expand >test.dot 可以手动打开dot文件去除一些孤立 ...
- Ubuntu下doxygen+graphviz使用概录
关键词:doxygen.Doxyfile.doxywizard.dot.graphviz等等. 使用doxygen从源码注释生成帮助文档或者SDK,输出格式有多种比如htmp.Latex等等. 如果想 ...
- jsplumb 中文教程
https://wdd.js.org/jsplumb-chinese-tutorial/#/ 1. jsplumb 中文基础教程 后续更新会在仓库:https://github.com/wangdua ...
随机推荐
- docker rpm 下载地址
http://yum.dockerproject.org/repo/main/centos/7/Packages/
- Python(网络基础)
day33 参考:http://www.cnblogs.com/linhaifeng/articles/5937962.html IP协议: 规定网络地址的协议叫ip协议,它定义的地址称之为ip地址, ...
- 匹配img标签的正则表达式
$preg = '/<img.*?src=[\"|\']?(.*?)[\"|\']?\s.*?>/i';//匹配img标签的正则表达式 preg_match_all($ ...
- 基于jeesite+android开发 电子商务系统免费教程
下载地址: jeesite免费教程 基于jeesite+android开发 电子商务系统免费教程 基于jeesite+android开发 电子商务系统免费教程 这个教程已经录制完很久了,一直没有公开, ...
- HTML+纯JS制作音乐播放器
该篇文章会教你通过JavaScript制作一个简单的音乐播放器.包括播放.暂停.上一曲和下一曲. 阅读本文章你需要对HTML.CSS和Javascript有基本的了解. 话不多说,先上图. emmm. ...
- JavaScript把函数作为另一函数的参数
首先说一下这个问题是怎么产生的:今天看排序算法,想要比较不同的排序算法的时间花费. 最简单的时间统计方法是在程序块开始和结束时分别计时,求一下时间差就能得出该段代码的耗时. 如: var foo = ...
- Markdown 常用操作
1->水平线 注意,使用时发现,水平线的语句上一行必须为空行,不然水平线不生效 *** 或者 --- ------->效果: 2->标题 # 大 ## 大 ### 大 #### 大 ...
- 目标检测算法—YOLO-V1
为什么会叫YOLO呢? YOLO:you only look once.只需要看一眼,就可以检测识别出目标,主要是突出这个算法 快 的特点.(原文:Yolo系列之前的文章:主要是rcnn系列的,他们的 ...
- appt查看应用包报名和入口页面
appt在哪里? aapt不需要另外安装喔,有安装了adt的,可以直接在adt../sdk/build-tools/android-xx/下,找到aapt,详细路径如图 怎么使用aapt.bat? 直 ...
- POJ 1118
#include<iostream> #include<set> #include<stdio.h> #include<math.h> #include ...