I would start by removing the weight
and compass point instructions (:n, :e, :s, :w). Those are forcing dot to make some weird decisions, especially the compass points. If you need to make changes to the default version, make one small change at a time. Unfortunately, the more you try to force dot to make a specific graph, the weirder it tends to get.
Since you can't work with an SVG, at some point you have to give up getting exactly the graph you want and accept the graph that dot creates. There's a limit to how much you can coerce dot.
The link between six and five (N06 -> N05
) should have the arrowhead going from six to five. If you're seeing the arrowhead pointing at six, I think that's a bug in an earlier version of Graphviz. Try updating to the most recent release.
This code:
digraph GPPubProcess{
rankdir="TB";
node [shape = box fontsize=10];
edge [fontsize=10];
graph[size="7.75,10.25" overlap = false];
subgraph c2 {
rank="same";
N02 [label="Two?" shape=hexagon margin=0];
N03 [label="Three"];
}
subgraph c4 {
rank="same";
N07 [label="Seven"];
N06 [label="Six?" shape=hexagon margin=0];
N05 [label="Five"];
}
subgraph c8 {
rank="same";
N11 [label="Eleven)" shape=hexagon margin=0];
N12 [label="Twelve"];
}
subgraph c9 {
rank="same";
N13 [label="Thirteen?" shape=hexagon margin=0];
N14 [label="Fourteen"];
N17 [label="COMPLETED"];
}
N00 [shape=point];
N01 [label="One"];
N02 [label="Two?" shape=hexagon margin=0];
N04 [label="Four?" shape=hexagon margin=0];
N08 [label="Eight"];
N09 [label="Nine"];
N10 [label="Ten?" shape=hexagon margin=0];
N99 [shape=point];
N00->N01;
N01->N02;
N02->N04 [label=" yes"];
N04->N05 [label=" no"];
N05->N08;
N08->N09;
N09->N10;
N10->N11 [label=" no"];
N11->N17 [label=" no"];
N17->N99;
N02 -> N03;
N04 -> N06 [label=" yes"];
N06 -> N05 [label=" no"];
N06 -> N07 [label=" yes"];
N10 -> N06 [label=" yes"];
N03 -> N07;
N07 -> N09;
N11 -> N12;
N15 [label="Fifteen"];
N16 [label="Sixteen"];
N12->N13;
N13->N15 [label=" no"];
N15->N16;
N13->N14 [label=" yes"];
N14->N07;
N16->N05;
}
created this graph:
adding [constraint=false]
to N06 -> N05
helps eliminate intersections around N06, but then pushes N11 and N17 way off to the left: