GraphViz,将相同的边分组

GraphViz,将相同的边分组,graphviz,edges,Graphviz,Edges,这将在“a”和“b”节点之间创建两条边。有没有一种方法可以只拥有一个优势(将它们分组)?我认为这实际上取决于你想要的输出是什么。一种可能性是: digraph G { a -> b [ label = "foo" ]; a -> b [ label = "bar" ]; } 在不使用样条线的情况下,使用直线段绘制边,因此不会从视觉上区分重复边 在理想的输出中,由于单条边有两个不同的标签,因此它会是什么样子?关键字“strict”可能会对您有所帮助 digraph G {

这将在“a”和“b”节点之间创建两条边。有没有一种方法可以只拥有一个优势(将它们分组)?

我认为这实际上取决于你想要的输出是什么。一种可能性是:

digraph G {
  a -> b [ label = "foo" ];
  a -> b [ label = "bar" ];
}
在不使用样条线的情况下,使用直线段绘制边,因此不会从视觉上区分重复边

在理想的输出中,由于单条边有两个不同的标签,因此它会是什么样子?

关键字“strict”可能会对您有所帮助

digraph G {
   graph [ splines = false ]
   a -> b [ label = "foo" ];
   a -> b [ label = "bar" ];
 }

这将合并边。但是我相信它只会应用第一个标签。

您想要一个边缘和两个标签吗?换句话说,你希望有什么不同于只有一个语句指定a和b之间的一条边?我想知道如果有更多的重复,是否有办法使边变厚。答案是Thx。它实际上在视觉上是不可分辨的。我想用标签将它们连接起来。我可能需要修改后再写一次文件。你说得对。您的目标超出了graphviz的节点/边缘处理功能,确实需要某种预处理来将重复项合并到您正在寻找的表单中。当然,对于像示例中这样的较小图形,您可以使用样条线选项对其进行排序。工作,但将应用最后一个标签。
strict digraph G {
  a -> b [ label = "foo" ];
  a -> b [ label = "bar" ];
}