Graphviz + Dot 经验分享

Graphviz + dot 经验分享,不定期更新。

cluster 去除边框


subgraph 中设置 peripheries=0

节点对齐


节点对齐可以用 rankgroupweightconstraint 多种方法实现。

rank 方法

rank 的方向由 rankdir 决定,例如 rankdir=LR 表示从左至右,也就是节点依次从左往右排列。如果指定两个节点有相同的 rank,则它们在 rankdir 垂直的方向上是对齐的。例如:

digraph G {
    rankdir=LR
    rank=same { a c }
    a -> b -> c
}

group 方法

拥有相同 group 的节点在布局时,他们之间的边会尽量保持直线。因此可以用来对齐节点。

原文:If the end points of an edge belong to the same group, i.e., have the same group attribute, parameters are set to avoid crossings and keep the edges straight.

示例:

digraph G {
    rankdir=LR
    
    a [group=g1]
    b [group=g1]
    d [group=g1]
    
    a -> b -> c -> d
    b -> d
    a -> c
}

weight 方法

dot 中,weight 的值只能是整数,值越大,边越短、越直、越垂直。

原文:In dot, the heavier the weight, the shorter, straighter and more vertical the edge is.

示例:

digraph G {
    rankdir=TB

    a -> b -> c -> d
    b -> d [weight=9]
    a -> c [weight=0]
}

constraint 方法

将边的 constraint 设置为 false 会导致这条边在 rank 计算中被忽略。其结果表现为边的头尾节点拥有相同的 rank, 与 rank=same 有类似效果又不完全相同,因此也可以用来对齐节点。

原文:If false, the edge is not used in ranking the nodes.

示例:

digraph G {
  a -> c;
  a -> b;
  b -> c [constraint=false];
}

注意以下示例与 rank=same 的行为差异:

digraph G {
  a -> c;
  a -> b [constraint=false];
  b -> c [constraint=false];
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值