Вы правы;для того, чтобы расположить узлы самостоятельно, вам нужно использовать аргумент layout
для plot
.Вот несколько основных примеров, показывающих, как использовать функции автоматической верстки и как создавать свои собственные.
Для начала давайте создадим простой график в качестве примера.Я устанавливаю случайное начальное число так, чтобы мои результаты были воспроизводимыми.
from igraph import *
import random
random.seed(123)
g = Graph.Erdos_Renyi(5, 0.5)
plot(g)

Когда вы просто строите график таким образом, вы не можете контролироватьрасположение.
Существует ряд встроенных функций для использования определенных алгоритмов для генерации макетов.
LO = g.layout_kamada_kawai()
plot(g, layout=LO)

Но если вы хотите получить полный контроль, вам нужно создать свой собственный макет.Компоновка - это просто последовательность пар [x, y], которые говорят, где разместить узлы.В то время как x работает ожидаемым образом, низкие координаты y находятся вверху, а высокие значения y внизу, поэтому вам нужно выполнить небольшое перемещение, чтобы настроить макет.
LO = [[0.0,1.0], [1.0,0.0], [1.0,1.0], [0.0,0.0], [0.5,-0.5]]
plot(g, layout=LO)
