, но вывод позиционирует узлы 'a' и 'b' на одном уровне на
сверху, с узлом 'c' внизу.
Я на самом деле получаю a сверху, по центру над b и c (см. Изображение).
Ваша разметка, слегка упрощенная (что такое lblstyle ?), Кажется, достигает того, что вы хотите, при рендеринге с точкой:
graph G
{
node[shape=circle];
a -- b [label = "-"];
a -- c [label = "-"];
{rank=same; b -- c [label="+"];}
}
Какую версию graphviz вы используете?
И иметь два треугольника рядом:
graph G
{
node[shape=circle];
edge[label="-"];
a -- b;
a -- c;
{rank=same; b -- c [label="+"];}
d -- e;
d -- f;
{rank=same; e -- f [label="+"];}
}
Однако, если что-то усложняется, может быть трудно сделать макетизацию в графическом виде в точности так, как хотелось бы. В этом и заключается сила графика - применение алгоритмов компоновки, чтобы пользователь не вмешивался.