点图语言-如何自动制作双向边缘?

问题描述 投票:68回答:2

这是我的点图的非常简化的示例:

strict digraph graphName {
A->B
B->A
}

此创建“替代文字”

相反,我希望在A和B之间显示一条单边,但带有双箭头。我知道如何将双箭头作为全局选项:

strict digraph graphName {
  edge [dir="both"]
A->B
B->A
}

但是那看起来非常丑陋,并不是我的所有边缘都应该是双头的。

“替代文字”

如果我对图形进行更多处理并自己检测到双重引用,并用一条边替换两条边,则看起来不错。但我宁愿不必执行此额外步骤

strict digraph graphName {
A->B [dir="both"]
}

“替代文字”

任何更好的解决方案?

graph graphviz dot
2个回答
55
投票

'concentrate = true'怎么样?:

strict digraph graphName {
concentrate=true
A->B
B->A
}

<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9MbkVvRi5wbmcifQ==” alt =“ with focus = true”>

documentation

如果为true,请使用边缘集中器。这个将多边合并为一条边并导致部分平行的边缘分享他们的部分路径。后者外部尚不可用点。


84
投票

您应该只使用:

A -> B [dir=both]
© www.soinside.com 2019 - 2024. All rights reserved.