在graphviz中将边缘权重减少到零

时间:2012-11-04 16:36:59

标签: graphviz dot

我使用graphviz创建了一个图表,我非常满意,我需要再添加一个边缘。我目前有这个:

Current Graph

(以下点中的来源)

我需要添加一个从T到S的边缘(绿色!)但是当我这样做时,图表的其余部分都会被抛入混乱状态。我知道我的意思是让graphviz处理布局,但是这个图形形成了一个序列,我希望它们至少看起来很相似。我已尝试使用图形集群进行各种操作,并使用权重使所有其他边缘的权重非常高,新边缘非常低但似乎没有任何帮助。如何添加从T到S的边缘,这不会担心边缘必须很长。

我所拥有的点源

digraph G {
  rankdir=LR
  subgraph clusterD3 {
  vSource [label="S*"]
    subgraph clusterD2 {
      color=white
      S
      T
      subgraph clusterD1 {
        color=white
        {rank=same; B A}
        {rank=same; D C}
        A->C 
        B->D  
        A->D 
        C->D 
        B->A 
        }   
        S->A 
        S->B 
        C->T 
        D->T 
     }
  vSink [label="T*"]
  vSource->A [color=red]
  vSource->B [color=red]
  vSource->C [color=red]
  vSource->D [color=red]
  vSource->T [color=red]
  A->vSink   [color=blue]
  B->vSink   [color=blue]
  C->vSink   [color=blue]
  D->vSink   [color=blue]
  S->vSink   [color=blue]
  }  
}

1 个答案:

答案 0 :(得分:1)

添加

{rank=same;vSource;S}

解决了这个问题:

digraph G {
  rankdir=LR
  subgraph clusterD3 {
  vSource [label="S*"]
    subgraph clusterD2 {
      color=white
      S
      T
      {rank=same;vSource;S}
      subgraph clusterD1 {
        color=white
        {rank=same; B A}
        {rank=same; D C}
        A->C 
        B->D  
        A->D 
        C->D 
        B->A 
        }   
        S->A 
        S->B 
        C->T 
        D->T 
     }
  vSink [label="T*"]
  vSource->A [color=red]
  vSource->B [color=red]
  vSource->C [color=red]
  vSource->D [color=red]
  vSource->T [color=red]
  A->vSink   [color=blue]
  B->vSink   [color=blue]
  C->vSink   [color=blue]
  D->vSink   [color=blue]
  S->vSink   [color=blue]
  T -> S     [color=green]
  }
}