Расположите внешние узлы как квадрат

Учитывая следующий график:

graph {
  node[shape=square];
  A [color=olivedrab4 /* pos="0,0!" */ ];
  B [color=orange     /* pos="0,3!" */ ];
  C [color=royalblue  /* pos="5,3!" */ ];
  D [color=orangered  /* pos="5,0!" */ ];

  node[shape=circle];
  u -- v -- w -- {x y}

  A -- u;
  B -- v;
  C -- y;
  D -- x;

}

который neato делает так:

свободно организованный график

есть ли способ исправить [A-D] в углах квадрата и есть подграф [u-y] аккуратно разложено между?

Примечание. Раскомментирование подсказок позиции в приведенном выше коде приводит к следующему неудовлетворительному результату:

Положение намекает график

1 ответ

Решение

Просто использовать fdp вместо neato и раскомментируйте подсказки позиции:

fdp -Tpng corners.gv -o corners.png

вывод графика

Или, если вы хотите использовать neatoТакже добавьте некоторый начальный атрибут pos к другим узлам и поместите их посередине:

node[shape=circle, pos="2.5,1.5"];

(восклицательный знак после координат отсутствует).

Выход почти такой же:

выходной графвиз - neato

Другие вопросы по тегам