graphviz dot初探

简介: graphviz dot初探 简介 现在文档都用markdown保存到github、gitlab这种代码仓库。markdown遇到最大的问题就是对图片的引用, 直接用工具绘制的图片可以引用,但是这样没法像md文件那样在git仓库中进行版本管理,而且既然文档用了描述语言, 引用图片源文件能用描

graphviz dot初探

简介

现在文档都用markdown保存到github、gitlab这种代码仓库。markdown遇到最大的问题就是对图片的引用,
直接用工具绘制的图片可以引用,但是这样没法像md文件那样在git仓库中进行版本管理,而且既然文档用了描述语言,
引用图片源文件能用描述语言就更好了。

dot是graphviz的一种描述语言,可以通过graphviz提供的命令行工具生成图片文件。

安装

用gentoo(prefix)安装graphviz直接emerge即可,除了默认的选项,增加了svg格式的支持:

USE="svg" emerge media-gfx/graphviz

绘图

dot的文档可以参考官方pdf

节点和箭头

dot的节点创建和连接非常方便,直接a->b就可以创建节点a和b,并且用默认的箭头连接两个节点。

digraph e1 {
    a->b;
}

使用命令生成png图片:

dot -Tpng -o e1.png e1.dot

生成的效果图片为: e1

节点属性

节点也可以先“声明”再使用(连接),节点可以用方括号添加属性,比如节点标签、形状、填充、颜色等。
稍稍修改a、b的形状:

digraph e2 {
    a[label="label a" shape="box3d" color="red"];
    b[label="label b" shape="box" style="filled" fillcolor="yellow"];
    a->b;
}

生成效果图: e2

集群(cluster)

dot中可以设置子图,默认子图是不会显示边框和名称。除非子图的名字是cluster开头:

digraph e3 {
    subgraph cluster0 {
        a->{b c}
        label="cluster 0"
    }
    subgraph cluster1 {
        x->{y z}
        label="cluster 1"
    }
    edge[constraint=false];
    a->x;
}

效果图: e3

这里通过设置edge的constraint为false,不让右边的子图“掉下去”。


转载自:https://coolex.info/blog/487.html

目录
相关文章
|
存储 缓存 算法
[转]分布式唯一ID生成方案
分布式唯一ID生成方案
706 0
[转]分布式唯一ID生成方案
|
11月前
|
存储 虚拟化 数据中心
VMware ESXi 8.0U3e macOS Unlocker & OEM BIOS Dell (戴尔) 定制版
VMware ESXi 8.0U3e macOS Unlocker & OEM BIOS Dell (戴尔) 定制版
315 7
VMware ESXi 8.0U3e macOS Unlocker & OEM BIOS Dell (戴尔) 定制版
|
11月前
|
XML 语音技术 Android开发
Android中TextToSpeech的使用
本文介绍了在Android开发中使用TextToSpeech(TTS)实现语音合成的功能。通过实例代码展示了TTS的初始化、语言设置、语音播放及队列模式的选择,并提供了将语音保存为音频文件的方法。项目中包含一个简单的按钮触发朗读功能,适合初学者学习和实践。代码示例完整,涵盖Activity生命周期管理与XML布局设计。
729 4
|
存储 安全 小程序
apk安装包EXE,mis程序打包后报毒的正确处理方式-千万不要再人傻钱多被骗-真正的合法途径的处理方式才是正确的-apk安装包EXE,mis程序如何处理-优雅草央千澈
apk安装包EXE,mis程序打包后报毒的正确处理方式-千万不要再人傻钱多被骗-真正的合法途径的处理方式才是正确的-apk安装包EXE,mis程序如何处理-优雅草央千澈
471 32
apk安装包EXE,mis程序打包后报毒的正确处理方式-千万不要再人傻钱多被骗-真正的合法途径的处理方式才是正确的-apk安装包EXE,mis程序如何处理-优雅草央千澈
|
监控 定位技术 数据中心
住宅ip与数据中心ip代理的区别是什么
代理IP分为住宅IP和数据中心IP。住宅IP由ISP提供,更难被网站检测,适合需要高匿名度和广泛地理位置的业务,如广告发布和价格比较。数据中心IP源自服务器,虽速度快但易被识别,常用于数据抓取和SEO。住宅IP因其真实用户特性,较少被封锁,但成本较高。选择类型应基于具体使用场景,如小规模数据抓取可选数据中心IP。
|
语音技术
word文档生成视频,自动配音、背景音乐、自动字幕,另类创作工具
这是一个Markdown格式的摘要: --- 这款工具独特之处在于它允许用户通过在Word文档中添加文字和图片来创作视频,包括配音、字幕和背景音乐。软件界面虽显复杂,但生成视频只需四步:选择Word文档、添加音乐、设置保存路径、点击开始生成。最新版1.15b改进了字幕自动换行功能,支持手动调整,修复了网络错误、文件路径问题和图片缩放等错误。软件提供永久免费使用,支持离线生成(需自建TTS),并鼓励用户自定义TTS和特效插件。下载链接可在官方页面找到。 --- 请注意,实际字符数可能会根据Markdown格式的要求略有变动,但主要内容已经压缩在这个范围内。
502 1
|
存储 监控 Ubuntu
完全交互式!易于使用的 Linux 性能监控工具
完全交互式!易于使用的 Linux 性能监控工具
192 0
|
存储 算法 调度
10种 Python数据结构,从入门到精通
10种 Python数据结构,从入门到精通
465 0
|
C语言
【C 言专栏】C 语言中的错误处理机制
【5月更文挑战第3天】本文探讨了C语言中的错误处理机制,涵盖错误类型(语法和运行时错误)、基本处理方法(返回值、全局变量和自定义异常)及常见策略(检查返回值、设置标志位和记录错误信息)。还介绍了perror和strerror函数,并强调自定义错误处理函数的重要性。注意不要忽略错误,保持处理一致性,避免过度处理。通过实例说明错误处理在文件操作和网络编程中的关键作用。错误处理是提升程序稳定性和可靠性的必备技能,需要在实践中不断学习和完善。
698 4