将外部节点排列为方形

时间:2012-01-31 14:33:14

标签: graphviz neato

考虑以下图表:

graph {
  node[shape=square];
  A [color=olivedrab4 /* pos="0,0!" */ ];
  B [color=orange     /* pos="0,3!" */ ];
  C [color=royalblue  /* pos="5,3!" */ ];
  D [color=orangered  /* pos="5,0!" */ ];

  node[shape=circle];
  u -- v -- w -- {x y}

  A -- u;
  B -- v;
  C -- y;
  D -- x;

}

neato呈现如下:

freely arranged graph

有没有办法在正方形的角落中修复[A-D]并将子图[u-y]整齐地排列在一起?

注意:取消注释上面代码中的位置提示会产生以下不满意的结果:

position hinted graph

1 个答案:

答案 0 :(得分:3)

只需使用fdp代替neato并取消注释位置提示:

fdp -Tpng corners.gv -o corners.png

graphviz output

或者,如果你想使用neato,也可以将一些初始pos属性添加到其他节点,并将它们放在中间:

node[shape=circle, pos="2.5,1.5"];

(坐标后没有感叹号)。

输出几乎相同:

graphviz output - neato