Graphviz:使用neato计算边缘和旁路节点之间的距离

10

布局引擎是 neato。我想在节点b和从a到c的箭头之间增加一些空间。marginpad 对于neato没有用。这是我的图形:

digraph G {
  splines=true      

  a [pos="0.0,0.0!"];
  b [pos="0.0,1.0!"];
  c [pos="0.0,2.0!"];  

  a -> b;
  a -> c;
  b -> c;
}

当前图表

这可能吗?

2个回答

10

使用您原始的图定义,添加esep=1属性以获得以下结果:

digraph G {
  splines=true; esep=1;


  a [pos="0.0,0.0!"];
  b [pos="0.0,1.0!"];
  c [pos="0.0,2.0!"];  

  a -> b;
  a -> c;
  b -> c;
}

使用neato将会得到以下输出结果:

Output with added <code>esep</code> attribute

根据该属性的文档所述:

用于样条边路由目的的多边形周围的边距。其解释与给定的sep相同。这通常应严格小于sep。


抱歉,最近几天我不知道为什么没有看到你的回答。谢谢,你是对的,这个方法有效。但是似乎我的小例子太小了。问题是,只有当节点之间的距离最小时,路由才能正常工作。我无法在应用程序中强制执行此距离,节点可能非常接近。 esep 扩大了这个距离,因此在我的情况下路由将无法工作。有什么想法可以解决这个问题吗?但感觉这是 Graphviz 固有的问题。 - Mike M

2

假设这个问题已经解决了(或者现在不相关了!)因为它太老了,但是你可以将负号附加到esep上(即esep = -0.4),这样会使节点更加接近。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接