【问题标题】:xlabels for nodes overlap with edges in dot节点的 xlabels 与点中的边重叠
【发布时间】:2014-01-03 19:04:58
【问题描述】:

我尝试用点画图,出现如下问题

节点b 的标签与从ab 的边重叠。有没有办法以某种方式移动这个标签以避免这种情况?

这是我用来生成图像的代码(使用dot

digraph A {
  rankdir=LR;
  center=true; margin=0.3; 
  nodesep=1.5; ranksep=0.5;

  node [shape=point,  height=".2", width=".2"];

  a [xlabel="a"];
  b [xlabel="b"];
  c [xlabel="c"];
  a -> b -> c;
  a -> c;
}

这种情况经常发生,而且很烦人(这里也一样,但有边缘):

我知道这是因为xlabels 是在所有东西都布置好之后放置的,但我想知道是否有可能帮助它 - 即说它需要放置标签的位置.

【问题讨论】:

标签: graphviz dot


【解决方案1】:

您不能这样做 - 您想为 xlabel 提供位置信息,但 graphviz 目前 (2016-01-25) 不允许这样做。 graphviz 错误跟踪器中有一个 open feature request 用于此功能;它被描述为:

这基本上是一个允许用户为 xlabels 提供位置信息的功能请求。对于附加到节点的 xlabels,坐标应相对于节点位置。类似的特征可以适用于边缘的头部和尾部标签。我想边缘的 xlabels 可以基于边缘的“中心”。

【讨论】:

  • 目前可以将stackoverflow.com/a/40869078/895245 中提到的所有内容与neato -n2 一起放置,但是您必须明确放置所有内容,这很痛苦,而且失败了一半graphviz 的目的...
  • 确实,这几乎完全违背了graphviz的目的。这就像在说“你可以用这辆破车从纽约到洛杉矶,你只需要自己开车”。
猜你喜欢
  • 1970-01-01
  • 2012-08-10
  • 1970-01-01
  • 2015-04-16
  • 1970-01-01
  • 2012-10-10
  • 2018-03-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多