graphviz dot初探

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值