1 介绍

一次偶然的机会接触到了画图软件graphviz,它主要用于画有向图、《数据结构》课程里的数据结构图等比较方便。它与tikz的比较为:

  1. tikz可以画任何种类的图。因为tikz就相当于你拿着一个画笔,面对一张空白的纸做画,各种位置、布局都要自己控制;
  2. 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里可以设置各种图片格式,如下图:


  1. Emden R. Gansner, Eleftherios Koutsofios, and Stephen North. Drawing graphs with dot. 2010. ↩

graphviz画图软件介绍及使用感受相关推荐

  1. 还在到处寻找画图软件?快来用Typora画饼图、时序图、流程图、UML图和状态图吧

    Markdown是我最喜欢的写作格式,现在我的博客.笔记等都是用markdown格式写的,基础的文字编辑相关的语法用的已经很顺手了,本文就来记录一下用Markdown编辑器画图的方法. 我现在使用一款 ...

  2. 计算机绘图说课视频,说课稿认识画图软件

    <说课稿认识画图软件>由会员分享,可在线阅读,更多相关<说课稿认识画图软件(4页珍藏版)>请在人人文库网上搜索. 1.说课稿认识画图软件认识画图软件说课稿尊敬的各位领导, 各位 ...

  3. XMOVE3.0手持终端——软件介绍(五):在2KB内存的单片机上实现的T9中文输入法

    编者注: X-MOVE是作者在业余时间于2010年6月份启动的以运动传感开发,算法和应用的平台,目前已经发展了三个版本,第四版的开发接近尾声.发布在博客园仅为交流技术,不存在商业目的,作者保留一切权利 ...

  4. python画简单的图形的代码-Python实现画图软件功能方法详解

    概述 虽然Python的强项在人工智能,数据处理方面,但是对于日常简单的应用,Python也提供了非常友好的支持(如:Tkinter),本文主要一个简单的画图小软件,简述Python在GUI(图形用户 ...

  5. 【计算机图形学课程】二.MFC鼠标响应函数模拟画图软件

    上一篇文章我们讲述MFC绘制图形的基本函数,包括绘制直线.绘制矩形.绘制椭圆及绘制文字,同时通过绕圆旋转和矩形平移简单的理解了图形学知识.这篇文章我将介绍鼠标响应和键盘响应,通过这些事件让学生实现一个 ...

  6. python画图代码大全-Python实现画图软件功能方法详解

    概述 虽然Python的强项在人工智能,数据处理方面,但是对于日常简单的应用,Python也提供了非常友好的支持(如:Tkinter),本文主要一个简单的画图小软件,简述Python在GUI(图形用户 ...

  7. origin画图软件 多个子图融合

    9.0rigin画图软件版本:9.0 写论文画图阶段有时候会遇到需要把多个子图(layer)画到同一张画布(graph)上. 百度了一下,大部分介绍都是使用merge(merge all open g ...

  8. 开源项目推荐: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 ...

  9. html5画图论文结束语,基于HTML5 Canvas画图软件的设计与实现.doc

    摘要:在最近十年里,HTML5在Web开发标准完成了巨大的飞跃,和以前的版本相比,HTML5不但用来表示Web的内容,而且还把Web带入一个更高的平台.HTML5为我们带来很多新的特性,其中一个最重要 ...

最新文章

  1. linux libuv 交叉编译 高性能事件驱动库
  2. C/C++ 中指针和引用的区别
  3. MyBatis 源码解读-带着问题去看源码
  4. 开发app用户协议_家电商城APP开发,方便用户选购家电商品
  5. Angular依赖注入的一个例子和注入原理单步调试
  6. 【转】关于WaterFall瀑布流式布局的性能优化
  7. 非一致性访存系统_Hibernate事实:访存策略的重要性
  8. 新分类!全总结!最新Awesome-SLU-Survey资源库开源!
  9. 云端计算机可以玩游戏么,手机掌上云电脑是什么?为什么可以玩PC游戏?
  10. 【三】版本之间穿梭切换
  11. Linux——ubuntu硬盘分区
  12. poj 3693 后缀数组
  13. java 双分派_双分派 和 访问者模式详解 | 学步园
  14. 由项目中的一个小问题所联想到的。
  15. python基础学习-字符串
  16. Nagios+Cacti模块——Nagios+Cacti 搭建及整合(一)
  17. TCP/IP四层模型
  18. 单片机开发系列(一)之Keil 5 安装使用教程
  19. 计算机技术前沿知识,计算机前沿知识讲座心得.doc
  20. macd java_macdev/java.md at master · pubyun/macdev · GitHub

热门文章

  1. Unity Shader 新手引导效果
  2. 天旦BPC 4.3发布,人工智能产品化第一步
  3. Lync2010客户端无法登录Lync Server 2013
  4. 【杨镇】【中译修订版】以太坊的分片技术官方介绍
  5. 机智云相关的控制协议和上报协议简介
  6. 世界主要城市中英文对照表(json格式)
  7. 牛客3006D-牛牛与牛妹的约会-思维
  8. 数学建模 线性规划报告_2019年高中数学新教材正式发布!变化明细首次曝光!...
  9. JAVA历险记--java基础知识--随堂笔记
  10. Kotlin学习之函数