I'm traying to use graphviz to generate orthogonal graphs:
graph G {
layout=neato
splines=ortho
A1 [ pos="1,1!" ]
A2 [ pos="2,1!" ]
A3 [ pos="3,1!" ]
A4 [ pos="4,1!" ]
Ae [ pos="5,1!" style=invis]
B1 [ pos="6,6!" ]
B2 [ pos="6,5!" ]
B3 [ pos="6,4!" ]
B4 [ pos="6,3!" ]
C1 [ pos="1,8!" ]
C2 [ pos="2,8!" ]
C3 [ pos="3,8!" ]
C4 [ pos="4,8!" ]
A1 -- C1
A2 -- C2
A3 -- B3
A4 -- B4
C3 -- B2
C4 -- B1
}
which produces following: orthogonal graph
My questions are:
Is it possible to generate similar layout whithout neato and hardcoded node positions?
How to force edges connected to A3, A4, C3, C4 to be so perfectly aligned to the middle of node as in the cases of A1, A2, C1, C2, B1-4 ?
How to surround A1-4, C1-4, B1-4 into three boxes without changing the layout? (I've tried subgraph clusters but they seem to be not supported by the neato layout; HTML Tables are the option however they seem to be not so perfect in line joining to the cells - ports)
Is it possible to remove the invisible "Ae" node and save the present layout? (when I just remove "Ae" some edges change their layout...)