Graphviz 将外部节点排列为正方形

Graphviz 将外部节点排列为正方形,graphviz,neato,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

考虑以下图表:

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
呈现如下:

有没有办法把
[a-D]
固定在一个正方形的角上,并将子图形
[u-y]
整齐地放在中间

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


只需使用
fdp
而不是
neato
并取消对位置提示的注释:

fdp -Tpng corners.gv -o corners.png

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

node[shape=circle, pos="2.5,1.5"];
(坐标后没有感叹号)

输出几乎相同: