аргумент i-graph-python, эквивалентный pos в сети x - PullRequest
0 голосов
/ 17 октября 2018

В сети x я могу ввести позиции узла для рисования, используя второй аргумент

nx.draw(G, pos)

Например, я могу сделать что-то вроде этого:

    pos[sourceNode]=(x1,y1)
    pos[targetNode]=(x2,y2)        

IЯ знаю, что у i-graph есть расположение аргументов, но я не смог понять, как его использовать!

Можете ли вы мне помочь?

1 Ответ

0 голосов
/ 30 октября 2018

Вы правы;для того, чтобы расположить узлы самостоятельно, вам нужно использовать аргумент layout для plot.Вот несколько основных примеров, показывающих, как использовать функции автоматической верстки и как создавать свои собственные.

Для начала давайте создадим простой график в качестве примера.Я устанавливаю случайное начальное число так, чтобы мои результаты были воспроизводимыми.

from igraph import * 
import random

random.seed(123)
g = Graph.Erdos_Renyi(5, 0.5)
plot(g)

First plot - no layout

Когда вы просто строите график таким образом, вы не можете контролироватьрасположение.

Существует ряд встроенных функций для использования определенных алгоритмов для генерации макетов.

LO = g.layout_kamada_kawai()
plot(g, layout=LO) 

Kamada-Kawai Layout

Но если вы хотите получить полный контроль, вам нужно создать свой собственный макет.Компоновка - это просто последовательность пар [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) 

Hand-crafted layout

...