I am trying to plot a graph with 3 levels of nodes, with equal distances between the levels. However, graphviz somehow decides that the distance between the middle level and the bottom one should be much larger than the distance between the top and middle level. Any way to fix this?
Here is my code:
digraph g{
rankdir="LR";
graph [pad="0.5", ranksep="0.525", nodesep="3"];
splines=false;
node[shape = square];
edge[style=invis];
subgraph cluster_3 {
color=invis;
a1->a2->a3->a4->a5->a6->a7;
}
subgraph cluster_2 {
color=invis;
a->b->c->d->e->f->g;
}
subgraph cluster_1 {
color=invis;
1->2->3->4->5->6->7;
}
"a1" [label="1'"];
"a2" [label="2'"];
"a3" [label="3'"];
"a4" [label="4'"];
"a5" [label="5'"];
"a6" [label="6'"];
"a7" [label="7'"];
edge[style=solid, constraint=false];
a->1[arrowhead=none, arrowtail=none];
a->2[arrowhead=none, arrowtail=none];
a->3[arrowhead=none, arrowtail=none];
a->a1[arrowhead=none, arrowtail=none];
a->a2[arrowhead=none, arrowtail=none];
a->a3[arrowhead=none, arrowtail=none];
b->1[arrowhead=none, arrowtail=none];
b->3[arrowhead=none, arrowtail=none];
b->7[arrowhead=none, arrowtail=none];
b->a1[arrowhead=none, arrowtail=none];
b->a3[arrowhead=none, arrowtail=none];
b->a7[arrowhead=none, arrowtail=none];
c->2[arrowhead=none, arrowtail=none];
c->6[arrowhead=none, arrowtail=none];
c->7[arrowhead=none, arrowtail=none];
c->a2[arrowhead=none, arrowtail=none];
c->a6[arrowhead=none, arrowtail=none];
c->a7[arrowhead=none, arrowtail=none];
d->1[arrowhead=none, arrowtail=none];
d->4[arrowhead=none, arrowtail=none];
d->7[arrowhead=none, arrowtail=none];
d->a1[arrowhead=none, arrowtail=none];
d->a4[arrowhead=none, arrowtail=none];
d->a7[arrowhead=none, arrowtail=none];
e->1[arrowhead=none, arrowtail=none];
e->2[arrowhead=none, arrowtail=none];
e->3[arrowhead=none, arrowtail=none];
e->a1[arrowhead=none, arrowtail=none];
e->a2[arrowhead=none, arrowtail=none];
e->a3[arrowhead=none, arrowtail=none];
f->1[arrowhead=none, arrowtail=none];
f->4[arrowhead=none, arrowtail=none];
f->7[arrowhead=none, arrowtail=none];
f->a1[arrowhead=none, arrowtail=none];
f->a4[arrowhead=none, arrowtail=none];
f->a7[arrowhead=none, arrowtail=none];
g->5[arrowhead=none, arrowtail=none];
g->6[arrowhead=none, arrowtail=none];
g->7[arrowhead=none, arrowtail=none];
g->a5[arrowhead=none, arrowtail=none];
g->a6[arrowhead=none, arrowtail=none];
g->a7[arrowhead=none, arrowtail=none];
}
The output looks like this currently:
Just played around a bit and came up with the below graph, is this any closer to want to want?
digraph g{
graph [pad="0.5", nodesep="1", ranksep="2"];
splines="false";
node[shape = square];
edge[style=invis];
a1->a->1
a2->b->2
a3->c->3
a4->d->4
a5->e->5
a6->f->6
a7->g->7
"a1" [label="1'"];
"a2" [label="2'"];
"a3" [label="3'"];
"a4" [label="4'"];
"a5" [label="5'"];
"a6" [label="6'"];
"a7" [label="7'"];
edge[style=solid, constraint=false];
a->1[arrowhead=none, arrowtail=none];
a->2[arrowhead=none, arrowtail=none];
a->3[arrowhead=none, arrowtail=none];
a->a1[arrowhead=none, arrowtail=none];
a->a2[arrowhead=none, arrowtail=none];
a->a3[arrowhead=none, arrowtail=none];
b->1[arrowhead=none, arrowtail=none];
b->3[arrowhead=none, arrowtail=none];
b->7[arrowhead=none, arrowtail=none];
b->a1[arrowhead=none, arrowtail=none];
b->a3[arrowhead=none, arrowtail=none];
b->a7[arrowhead=none, arrowtail=none];
c->2[arrowhead=none, arrowtail=none];
c->6[arrowhead=none, arrowtail=none];
c->7[arrowhead=none, arrowtail=none];
c->a2[arrowhead=none, arrowtail=none];
c->a6[arrowhead=none, arrowtail=none];
c->a7[arrowhead=none, arrowtail=none];
d->1[arrowhead=none, arrowtail=none];
d->4[arrowhead=none, arrowtail=none];
d->7[arrowhead=none, arrowtail=none];
d->a1[arrowhead=none, arrowtail=none];
d->a4[arrowhead=none, arrowtail=none];
d->a7[arrowhead=none, arrowtail=none];
e->1[arrowhead=none, arrowtail=none];
e->2[arrowhead=none, arrowtail=none];
e->3[arrowhead=none, arrowtail=none];
e->a1[arrowhead=none, arrowtail=none];
e->a2[arrowhead=none, arrowtail=none];
e->a3[arrowhead=none, arrowtail=none];
f->1[arrowhead=none, arrowtail=none];
f->4[arrowhead=none, arrowtail=none];
f->7[arrowhead=none, arrowtail=none];
f->a1[arrowhead=none, arrowtail=none];
f->a4[arrowhead=none, arrowtail=none];
f->a7[arrowhead=none, arrowtail=none];
g->5[arrowhead=none, arrowtail=none];
g->6[arrowhead=none, arrowtail=none];
g->7[arrowhead=none, arrowtail=none];
g->a5[arrowhead=none, arrowtail=none];
g->a6[arrowhead=none, arrowtail=none];
g->a7[arrowhead=none, arrowtail=none];
}