从 igraph-python 获取二维坐标
Getting 2d coordinates from igraph-python
我有一个带有 igraph 的代码生成网络,我想检索节点的二维坐标(Xs 和 Ys)(我不需要边)以便能够在其他 space 中绘制结果,让我们说 JavaScript。这是从 numpy 矩阵可视化网络的代码示例:
import igraph
import numpy
A = numpy.zeros(shape=(5,5))
A[0] = [0,1,1,1,1]
A[1] = [1,0,1,0,1]
A[2] = [1,1,0,1,0]
A[3] = [1,0,1,0,1]
A[4] = [1,1,0,1,0]
g = igraph.Graph.Adjacency((A > 0).tolist())
g.es['weight'] = A[A.nonzero()]
igraph.plot(g)
是否可以检索坐标,最好不要在 python 中可视化网络,比方说在字典中?可以用其他包来完成吗,比如 pygraphviz ?
由于您对情节本身不感兴趣,只需调用任何布局函数(有几个,简单地调用 layout
指向默认值,IIRC),所有这些 return 一个 layout
对象,具有包含 x 和 y 位置的 coords
属性。
layout_obj = g.layout()
x, y = np.array(layout_obj.coords).T
我有一个带有 igraph 的代码生成网络,我想检索节点的二维坐标(Xs 和 Ys)(我不需要边)以便能够在其他 space 中绘制结果,让我们说 JavaScript。这是从 numpy 矩阵可视化网络的代码示例:
import igraph
import numpy
A = numpy.zeros(shape=(5,5))
A[0] = [0,1,1,1,1]
A[1] = [1,0,1,0,1]
A[2] = [1,1,0,1,0]
A[3] = [1,0,1,0,1]
A[4] = [1,1,0,1,0]
g = igraph.Graph.Adjacency((A > 0).tolist())
g.es['weight'] = A[A.nonzero()]
igraph.plot(g)
是否可以检索坐标,最好不要在 python 中可视化网络,比方说在字典中?可以用其他包来完成吗,比如 pygraphviz ?
由于您对情节本身不感兴趣,只需调用任何布局函数(有几个,简单地调用 layout
指向默认值,IIRC),所有这些 return 一个 layout
对象,具有包含 x 和 y 位置的 coords
属性。
layout_obj = g.layout()
x, y = np.array(layout_obj.coords).T