【问题标题】:Graphviz Dot vertical alignment of nodesGraphviz Dot 节点的垂直对齐
【发布时间】:2015-01-21 09:12:02
【问题描述】:

我得到了这个点图,希望节点 A 和 D、B 和 E 以及 C 和 F 对齐。这是相关的点代码:

digraph{

A
B
C
D
E
F

{rank = same; B; C}
{rank = same; E; F}

A -> B [label="2", weight=2]
A -> C [label="0", style=dashed, weight=2]
B -> C [label="0", style=dashed, weight=2]
B -> D [label="2", style=dashed, weight=2]
C -> D [label="0", weight=2]
D -> E [label="1", style=dashed, weight=2]
D -> F [label="0", weight=2]
E -> F [label="0", weight=2]
F -> A
}

如您所见,我已经尝试对边缘应用权重,但没有成功

【问题讨论】:

    标签: graphviz dot


    【解决方案1】:

    可以使用节点的group属性来建议将同一组节点之间的边对齐成一条直线。

    用组属性声明节点:

    A [group=g1]
    {rank = same; B[group=g2]; C[group=g3]}
    D [group=g1]
    {rank = same; E[group=g2]; F[group=g3]}
    

    然后确保所有这些节点之间都有一条(不可见的)边:

    edge[style=invis];
    A -> D
    B -> E
    C -> F
    

    一切都在一起:

    digraph G {
      A [group=g1]
      {rank = same; B[group=g2]; C[group=g3]}
      D [group=g1]
      {rank = same; E[group=g2]; F[group=g3]}
    
      A -> B [label="2", weight=2]
      A -> C [label="0", style=dashed, weight=2]
      B -> C [label="0", style=dashed, weight=2]
      B -> D [label="2", style=dashed, weight=2]
      C -> D [label="0", weight=2]
      D -> E [label="1", style=dashed, weight=2]
      D -> F [label="0", weight=2]
      E -> F [label="0", weight=2]
      F -> A
    
      edge[style=invis];
      A -> D
      B -> E
      C -> F
    }
    

    【讨论】:

      猜你喜欢
      • 2018-05-16
      • 2021-01-27
      • 1970-01-01
      • 2014-08-02
      • 1970-01-01
      • 1970-01-01
      • 2013-05-13
      • 2021-08-22
      • 2021-02-26
      相关资源
      最近更新 更多