Самый элегантный способ конвертировать списки в объекты igraph для построения - PullRequest
0 голосов
/ 23 декабря 2018

Я новичок в igraph, и он кажется очень мощным (и, следовательно, также сложным) пакетом.

Я попытался преобразовать следующие списки в объект igraph.

graph <- list(s = c("a", "b"),
              a = c("s", "b", "c", "d"),
              b = c("s", "a", "c", "d"),
              c = c("a", "b", "d", "e", "f"),
              d = c("a", "b", "c", "e", "f"),
              e = c("c", "d", "f", "z"),
              f = c("c", "d", "e", "z"),
              z = c("e", "f"))

weights <- list(s = c(3, 5),
                a = c(3, 1, 10, 11),
                b = c(5, 3, 2, 3),
                c = c(10, 2, 3, 7, 12),
                d = c(15, 7, 2, 11, 2),
                e = c(7, 11, 3, 2),
                f = c(12, 2, 3, 2),
                z = c(2, 2))

Интерпретация выглядит следующим образом: s является начальным узлом, он связывается с узлами a и b.Ребра имеют вес 3 для s до a и 5 для s до b и т. Д.

Я перепробовал все виды функций из igraph, но получил только все виды ошибок,Какой самый элегантный и простой способ преобразовать вышеприведенное в igraph объект для построения графика?

1 Ответ

0 голосов
/ 23 декабря 2018

Создать список ребер, а затем график из этого.Назначьте веса и нанесите их на график.

set.seed(123)

e <- as.matrix(stack(graph))
g <- graph_from_edgelist(e)
E(g)$weight <- stack(weights)[[1]]

plot(g, edge.label = E(g)$weight)

screenshot

...