Используя комбинацию nodesep , margin , подграфа s и кластеров , вы можете довольно близко подойти:
digraph pairs { nodesep=.02
splines=line
subgraph cluster_1 { margin="24" peripheries=0
{ edge [style=invis] rank=same
n1 [ label="a" shape=oval height=.6 ]
n1_X [ shape=rect color=blue height=.4 ]
n1 -> n1_X [style=invis]
}
}
subgraph cluster_2 { margin="24" peripheries=0
{ edge [style=invis] rank=same
n2 [ label="{2}" shape=oval height=.6 ]
n2_X [ shape=rect color=blue height=.4 ]
n2 -> n2_X [style=invis]
}
}
// more of the same ...
edge[dir=none]
n1 -> {n2 n3 n4 n5 }
n2 -> {n6 n7 }
n3 -> {n6 n8 n9 }
n4 -> {n7 n10 n13 }
n5 -> {n8 n10 }
n6 -> {n11 n15 }
n7 -> {n15 }
n8 -> {n11 n12 }
n9 -> {n12 n13 }
n10 -> {n14 }
n11 -> {n17 }
n12 -> {n16 }
n13 -> {n15 n16 }
n14 -> {n16 }
n15 -> {n17 }
n16 -> {n17 }
}
![enter image description here](https://i.stack.imgur.com/YJH2K.png)