In Graphviz / dot, is it possible to get the edge to connect exactly in the top center of a node? Reading the dot guide, I thought tailport
and headport<
splines=ortho
doesn't support tailport
or headport
(see: "Graphviz Issue Tracker - 0002142: ortho plots do not respect ports. also arrowheads seem to go the wrong way.")C
or F
on the example below)This code works even with more than 3 child nodes and it's compatible with Graphviz 2.38. Useful for Org Chart (even if it's not perfect if you have many levels - I'm still try to reduce asymmetries).
graph {
splines=ortho;
{0, 1, 2, 3 [width=0, shape=point, style=invis];}
{rank=same; 1 -- 2 -- 3;}
0 -- 2;
node [shape=box];
{rank=same; A -- 0 -- B;}
1 -- C;
1 -- D;
3 -- E;
3 -- F;
}
I see the same effect under Windows7 - did not try other platforms.
I tried fiddling with the 'port positions', See http://www.graphviz.org/content/attrs#kportPos
e.g. changing the last lines of your code to
point2 -> point1
point2 -> C:nw
point1 -> point3
point3 -> E:ne
point1 -> D
gives a (slightly) better positioning of the connecting lines.
Turns out the most recent (2.38) version isn't working properly in Mac OS X Yosemite, I had to downgrade to 2.36 as noted in the download page.