graphviz画图软件介绍及使用感受
1 介绍
一次偶然的机会接触到了画图软件graphviz,它主要用于画有向图、《数据结构》课程里的数据结构图等比较方便。它与tikz的比较为:
- tikz可以画任何种类的图。因为tikz就相当于你拿着一个画笔,面对一张空白的纸做画,各种位置、布局都要自己控制;
- graphviz擅长于有向图等。它封装了底层的布局,位置关系等,有一些底层的算法在帮你做这些事情。
所以,我认为在graphviz擅长的领域,使用其画图特别方便。我可以说是一个画图爱好者,使用过多种多样的画图软件,每发现一个不免要点评一番,不周之处,敬请原谅。
2 使用初步
graphviz是一个软件,而要画图,你需要使用dot语言1,举下面一个例子:
digraph G {main -> parse -> execute;main -> init;main -> cleanup;execute -> make_string;execute -> printf;init -> make_string;main -> printf;execute -> compare;
}
得到的绘图结果为:
很方便吧!但是你若要想绘制更加丰富的图形,则需要使用各种各样的属性,用来控制结点、边等的样式。如下代码:
digraph G{size ="4,4";main [shape=box]; /* this is a comment */main -> parse [weight=8];parse -> execute;main -> init [style=dotted];main -> cleanup;execute -> {make_string; printf}init -> make_string;edge [ color=red]; // so is thismain -> printf [style=bold,label="100 times"];make_string [label="make a \nstring"];node [shape=box,style=filled,color=".7 .3 1.0"];execute -> compare;
}
输出的效果为:
短短的几行代码就可产生丰富的图形,方便我们版本控制,对图形进行自动化处理等工作。
3 图片保存
绘制好图片时,可将图片保存为各种各样的格式,如下:
点击layout按钮,产生图形:
然后再点击setting,即出现一个对话框,
Output File Type
里可以设置各种图片格式,如下图:
- Emden R. Gansner, Eleftherios Koutsofios, and Stephen North. Drawing graphs with dot. 2010. ↩
graphviz画图软件介绍及使用感受相关推荐
- 还在到处寻找画图软件?快来用Typora画饼图、时序图、流程图、UML图和状态图吧
Markdown是我最喜欢的写作格式,现在我的博客.笔记等都是用markdown格式写的,基础的文字编辑相关的语法用的已经很顺手了,本文就来记录一下用Markdown编辑器画图的方法. 我现在使用一款 ...
- 计算机绘图说课视频,说课稿认识画图软件
<说课稿认识画图软件>由会员分享,可在线阅读,更多相关<说课稿认识画图软件(4页珍藏版)>请在人人文库网上搜索. 1.说课稿认识画图软件认识画图软件说课稿尊敬的各位领导, 各位 ...
- XMOVE3.0手持终端——软件介绍(五):在2KB内存的单片机上实现的T9中文输入法
编者注: X-MOVE是作者在业余时间于2010年6月份启动的以运动传感开发,算法和应用的平台,目前已经发展了三个版本,第四版的开发接近尾声.发布在博客园仅为交流技术,不存在商业目的,作者保留一切权利 ...
- python画简单的图形的代码-Python实现画图软件功能方法详解
概述 虽然Python的强项在人工智能,数据处理方面,但是对于日常简单的应用,Python也提供了非常友好的支持(如:Tkinter),本文主要一个简单的画图小软件,简述Python在GUI(图形用户 ...
- 【计算机图形学课程】二.MFC鼠标响应函数模拟画图软件
上一篇文章我们讲述MFC绘制图形的基本函数,包括绘制直线.绘制矩形.绘制椭圆及绘制文字,同时通过绕圆旋转和矩形平移简单的理解了图形学知识.这篇文章我将介绍鼠标响应和键盘响应,通过这些事件让学生实现一个 ...
- python画图代码大全-Python实现画图软件功能方法详解
概述 虽然Python的强项在人工智能,数据处理方面,但是对于日常简单的应用,Python也提供了非常友好的支持(如:Tkinter),本文主要一个简单的画图小软件,简述Python在GUI(图形用户 ...
- origin画图软件 多个子图融合
9.0rigin画图软件版本:9.0 写论文画图阶段有时候会遇到需要把多个子图(layer)画到同一张画布(graph)上. 百度了一下,大部分介绍都是使用merge(merge all open g ...
- 开源项目推荐:OpenGL/Vulkan/Cairo/Skia/angle/VTK/OpenVG/MyPaint/GIMP/Krita/Pencil2D/inkspace/enve等绘图库或画图软件
绘图引擎简介 Windows环境下二维绘图引擎有多种选择:GDI.GDI+.DirectDraw.Qt/QPainter.Agg.Cairo.skia.Direct2D.Direct3D.OpenGL ...
- html5画图论文结束语,基于HTML5 Canvas画图软件的设计与实现.doc
摘要:在最近十年里,HTML5在Web开发标准完成了巨大的飞跃,和以前的版本相比,HTML5不但用来表示Web的内容,而且还把Web带入一个更高的平台.HTML5为我们带来很多新的特性,其中一个最重要 ...
最新文章
- linux libuv 交叉编译 高性能事件驱动库
- C/C++ 中指针和引用的区别
- MyBatis 源码解读-带着问题去看源码
- 开发app用户协议_家电商城APP开发,方便用户选购家电商品
- Angular依赖注入的一个例子和注入原理单步调试
- 【转】关于WaterFall瀑布流式布局的性能优化
- 非一致性访存系统_Hibernate事实:访存策略的重要性
- 新分类!全总结!最新Awesome-SLU-Survey资源库开源!
- 云端计算机可以玩游戏么,手机掌上云电脑是什么?为什么可以玩PC游戏?
- 【三】版本之间穿梭切换
- Linux——ubuntu硬盘分区
- poj 3693 后缀数组
- java 双分派_双分派 和 访问者模式详解 | 学步园
- 由项目中的一个小问题所联想到的。
- python基础学习-字符串
- Nagios+Cacti模块——Nagios+Cacti 搭建及整合(一)
- TCP/IP四层模型
- 单片机开发系列(一)之Keil 5 安装使用教程
- 计算机技术前沿知识,计算机前沿知识讲座心得.doc
- macd java_macdev/java.md at master · pubyun/macdev · GitHub