【问题标题】:How to make an edge with both direction in GraphViz?如何在 GraphViz 中创建双向边?
【发布时间】:2018-09-05 15:32:28
【问题描述】:

如何在 GraphViz 中制作双向边?

我正在尝试制作一个双向弯曲的边缘。

但我唯一能做的情节是:

我想让 x1 和 x2 之间的边沿两个方向弯曲。

我使用的代码:

digraph {

rankdir=LR

node [shape=box ]
x1;x2
node [shape=oval ]
y

x1->y[dir=back label=0.77]
x2->y[dir=back label=0.42]

x1:w -> x2:w[dir=both constraint=false]

}

我将不胜感激。

【问题讨论】:

  • 您使用的是哪个版本的 Graphviz?
  • 我注意到,如果我有[ dir=both label="" ],那么箭头会在两个方向上显示,但是交换属性[ label="" dir=both ] 然后只会出现一个方向。奇怪!

标签: graphviz dot


【解决方案1】:

我认为应该有更好的解决方案,但以下确实对我有用:

digraph {

rankdir=LR

node [shape=box ]
x1;x2
node [shape=oval ]
y

x1->y[dir=back label=0.77]
x2->y[dir=back label=0.42]

x1:w -> x2:w[dir=both constraint=false]
x2:w -> x1:w[dir=both constraint=false]
}

基于Changing edge direction in dot的回答:

digraph g {

rankdir=LR

node [shape=box ]
{rank=same x1;x2}
node [shape=oval ]
y

x1 -> y[dir=back label=0.77]
x2 -> y[dir=back label=0.42]

x1:w -> x2:w[dir=both label=0.34]

}

【讨论】:

  • 但它有两条边。如果我为这条边添加标签,你的方法会产生两条边。例如,x2:w->x1:w[dir=both constraint=false label=0.34]
  • 与原始问题相比,这是一个新的约束。确实应该有更好的解决方案。
  • 删除constraint=false 时会出现双标题箭头。可能通过玩一些定位等,您可能可以获得正确的图片。它不起作用对我来说有点奇怪,我也无法直接在文档中找到正确的答案(graphviz.gitlab.io/_pages/doc/info/lang.html)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-10-30
  • 2015-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-03
相关资源
最近更新 更多