代码之家  ›  专栏  ›  技术社区  ›  Darius

从igraph python获取二维坐标

  •  0
  • Darius  · 技术社区  · 7 年前

    我有一个带有igraph的代码生成网络,我想检索节点的2d坐标(Xs和Ys)(我不需要边),以便能够在其他空间绘制结果,比如说使用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?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Paul Brodersen    7 年前

    因为您对绘图本身不感兴趣,所以只需调用任何布局函数(有几个,其中一个简单地调用 layout 指向默认值IIRC),所有这些都返回 布局 具有 coords 包含x和y位置的属性。

    layout_obj = g.layout()
    x, y = np.array(layout_obj.coords).T