Программы Graphviz стараются не размещать узлы поверх других узлов. Вы можете получить размещение узла, явно предоставив атрибуты pos для всех узлов. (Не так сложно, но неприятно.) Вы можете получить neato , чтобы сгенерировать все прямые ребра, но вам придется указать координаты (сплайна) для всех дуг. В противном случае вы получите следующее:
В качестве альтернативы, вместо graphviz, если вы используете dpi c или gpi c, эта программа:
.PS
.defcolor pink rgb #FFC0CB
circlerad=circlerad*.8
## we need to place the large oval before we place nodes on it
Qx: circle invis ; line invis; circle invis; A: line invis;
ellipseht=ellipseht*2;
ellipsewid=ellipsewid*2
E:ellipse at A.c shaded "pink" " N(s)"
move to Qx.w
Q: circle "q" ; arrow "ε" ""; C1: circle ; A: line invis; C2: circle ; arrow "ε" ""; F: circle "f";
circlerad=circlerad*.8
F1:circle at last circle
move to E.n; up; P1: box invis "ε"
arc -> from C2.n to C1.n
arcrad=2
arc -> from Q.s to F.s
### gpic version of greek chars:
# move to E.s; down; box invis "" "\[*e]"
########################################
### dpic/svg version of greek chars
move to E.s; down; box invis "" "ε"
.PE
произвел это:
gpi c является частью пакета groff GNU (Linux).
dpi c можно найти здесь: https://ece.uwaterloo.ca/~aplevich/dpic/