首页 > 解决方案 > 是否可以构建具有邻接矩阵的图?

问题描述

我正在准备 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 很容易构造邻接矩阵,我想知道是否有可能,或者是否有一些代码,如果我有邻接矩阵 sage 或 python 构建图形



感谢 davidlowryduda,现在我有了这个矩阵

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]]). 

是否可以从数组转换为我需要能够加载该代码的形式?

标签: pythonsage

解决方案


如果你给它一个矩阵,Sage 会很乐意为你绘制图表。

对于您的g2,如果您只是g2在交互式 Sage 会话中键入,那么它将为您呈现一个图表。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 是有意义的。


推荐阅读