Можно ли построить граф с матрицей смежности? - PullRequest
1 голос
/ 07 апреля 2019

Я готовлюсь к теории графов в Sagemath или Python,

g2=Graph({0:[1,2,3,4,5], 1:[2,3,4,5], 2:[5], 3:[4,5], 4:[5]})

если g2 - график, тогда с

g2.adjacency_matrix()

SAGEMATH легко создает матрицу смежности, мне было интересно, если это возможно, или есть какой-то код, где, если у меня есть матрица смежности, мудрец или python построить граф



спасибо, давидловрыдуда ,, теперь у меня есть эта матрица

T= array([[ 0, 0, 0,  1,  1],
          [0,  0,  1, 0,  1],
          [0,  1,  0,  1, 0],
          [ 1, 0,  1,  0, 0],
          [ 1,  1, 0, 0,  0]])            

но для

 G = Graph(T, format='adjacency_matrix'), 

Мне нужен этот тип!

matrix([[0, 0, 0,  1,  1],[0,  0,  1, 0,  1],[0,  1,  0,  1, 0],[ 1, 0,  1,  0, 0],[ 1,  1, 0, 0,  0]]). 

Можно ли преобразовать из массива в форму, мне нужно, чтобы иметь возможность загрузить этот код?

1 Ответ

1 голос
/ 07 апреля 2019

Мудрец очень удачно построит график для вас, если вы дадите ему матрицу.

Для вашего g2, если вы просто наберете g2 в интерактивном сеансе мудреца, то он представит вамсюжет графика.g2.show() и g2.plot() - это другие способы отображения графика.

Вы можете сохранить изображение, используя что-то вроде

p = g2.plot()
p.sage_image("file.png")

Если вы начинаете с матрицы смежности, sageс радостью сделаю сюжет для вас.Например,

M = matrix([[0 1 0 0 0 0],
[0 0 1 0 1 0],
[0 0 0 1 1 0],
[0 0 0 0 0 0],
[0 0 0 0 0 1],
[0 0 0 0 0 0]])
sage: G = DiGraph(M, format='adjacency_matrix')
sage: G.show()

Учитывая симметричную матрицу, имеет смысл использовать Graph вместо Digraph.

...