【问题标题】:How to prevent edge lapping in graphviz with circo layout如何使用 circo 布局防止 graphviz 中的边缘重叠
【发布时间】:2017-11-02 08:56:49
【问题描述】:

我尝试使用 GraphViz 绘制圆形图,并决定最好使用 circo 绘制该图。

在 7 年前 How to prevent edges in graphviz to overlap each other 的帖子中听取了建议,并使用全局 overlap=falsesplines=true,边缘仍然相互重叠。

整个图可见here,定义为:

digraph question6 {

 layout="circo"
 overlap=false
 splines=true
 node [shape="circle"]

 G1 [label="1, G"]
 G2 [label="2, G"]
 D11 [label="1, D1"]
 D12 [label="2, D1"]
 D21 [label="1, D2"]
 D22 [label="2, D2"]

 G1 -> D12 [label="c"]
 G1 -> G2 [label="a"]
 G2 -> D12 [label="a"]
 D11 -> G1 [label="d"]
 D11 -> D21 [label="e"]
 D11 -> D12  [label="c"]
 D12 -> G2 [label="d"]
 D12 -> D22 [label="c"]
 D21 -> G1 [label="d"]
 D21 -> D22 [label="c"]

 D22 -> D21 [label="b"]
 D22 -> G2 [label="d"]
}

【问题讨论】:

  • 我认为这是不可能的。 “边缘重叠”几乎总是意味着想要 平面度,而 GraphViz 根本没有设置来保证平面度。见my other answer on this topic.
  • 非常感谢!!!真的很感谢intel!我现在回想起在我学习离散数学时,平面性是一个很重要的部分。既然 graphviz 不会自动解决这个问题,我可以手动设置它,还是应该升级到 OmniFraffle 和 Visio 等图表应用程序?谢谢!
  • 我不能代表其他软件包的功能集。我对 GraphViz 和 dot 了解很多,但不能评论其他的。祝你好运!

标签: graphviz overlap edges


【解决方案1】:

就目前而言,没有可行的方法。

GraphViz 尚无法完成的非常困难的事情之一 resolve 就是判断图是否是平面的

【讨论】:

    猜你喜欢
    • 2011-04-27
    • 1970-01-01
    • 2013-07-23
    • 1970-01-01
    • 1970-01-01
    • 2017-06-17
    • 1970-01-01
    • 1970-01-01
    • 2020-09-06
    相关资源
    最近更新 更多