Graphviz 如何允许边与节点重叠?

Graphviz 如何允许边与节点重叠?,graphviz,dot,Graphviz,Dot,我正在寻找一种在渲染点图期间禁用边路由的方法。 理想情况下,这将是一个逐边选项,但完全禁用路由也会有所帮助 我生成的图表示语法树,从标识符的使用到它的声明都有额外的边,如下所示 现在,这仍然是大部分可读性,但对于较大的图形,蓝色边缘会很快变得非常混乱,因为dot似乎喜欢将它们到处布线 我更喜欢它们在两个节点之间沿直线(或曲线)移动,忽略与节点和其他边的所有重叠。 不幸的是,我一直无法找到一种方法来达到这种效果,老实说,我甚至怀疑这是可能的 以前有人问过A,但我还是决定打开一个新的,原因如下:

我正在寻找一种在渲染点图期间禁用边路由的方法。 理想情况下,这将是一个逐边选项,但完全禁用路由也会有所帮助

我生成的图表示语法树,从标识符的使用到它的声明都有额外的边,如下所示

现在,这仍然是大部分可读性,但对于较大的图形,蓝色边缘会很快变得非常混乱,因为dot似乎喜欢将它们到处布线

我更喜欢它们在两个节点之间沿直线(或曲线)移动,忽略与节点和其他边的所有重叠。 不幸的是,我一直无法找到一种方法来达到这种效果,老实说,我甚至怀疑这是可能的

以前有人问过A,但我还是决定打开一个新的,原因如下:

  • 我不要求节点保持在固定位置
  • 除了蓝色的边,我的图形始终是一棵树(无需担心边重叠)
  • 不幸的是,在多次传球中跑dot对我来说不是一个选择
  • 另一个问题是超过6年了,所以可能从那时起增加了一个功能
我迄今为止的努力:

  • 在图形设置中添加了“重叠=真”
  • 将“重叠=真实”添加到各个边
这些似乎都没有任何效果

文件布局非常简单(摘录):

有向图{
节点[shape=Mrecord];
图[ordering=out,overlap=true,nodesep=0.3,ranksep=1];
...
#参考文献
node0->node40[样式=虚线,颜色=蓝色,约束=假]
node0[shape=box style=filled label=“rec”fillcolor=“#cccc”]
...
#端口节点记录
节点28:p0:s->节点40:n
节点28:p1_0:s->节点7:n
node28[label=“{Record}{Name}{Elements}{1}}}}
...
#声明文字记录
node40[shape=box style=filled label=“rec”fillcolor=“#cccc”]
...
}

看来我想做的事是不可能的。。。最后我用相应的节点和边来获得一些视觉清晰度。似乎我想做的是不可能的。。。最后,我对相应的节点和边进行了处理,以获得一定的视觉清晰度。
digraph {
  node [shape=Mrecord];
  graph [ordering=out, overlap=true, nodesep=0.3, ranksep=1];
  ...
  # ReferenceLiteral rec
  node0 -> node40 [style=dashed, color=blue, constraint=false]
  node0 [shape=box style=filled label="rec" fillcolor="#cccccc"]
  ...
  # PortNode Record
  node28:p0:s -> node40:n
  node28:p1_0:s -> node7:n
  node28 [label="{Record|{<p0>Name|{Elements|{<p1_0>1}}}}"]
  ...
  # DeclarationLiteral rec
  node40 [shape=box style=filled label="rec" fillcolor="#cccccc"]
  ...
}