【问题标题】:How to get X Y coordinates of lattice graph using graph_tool如何使用 graph_tool 获取晶格图的 X Y 坐标
【发布时间】:2019-04-14 01:39:54
【问题描述】:

我正在使用graph_tool 创建一个点阵图。我正在尝试创建一个表示图中 X Y 坐标的属性映射。例如,如果我创建一个高度为 5、宽度为 10 的点阵图,我希望顶点 0 的属性映射值为 [0, 0],顶点 1 为 [1, 0],顶点10 为 [0, 1] 等

我使用以下代码生成了图像:

g = lattice([10, 5]) 
pos = sfdp_layout(graph)
graph_draw(graph, pos=pos, output_size=(500,500), vertex_text=graph.vertex_index, output="lattice.png")

在上面的代码中,pos[0] 的值为array([-16.4148811 , -11.80299953])

我使用sfdp_layout 的方向是否正确?

【问题讨论】:

    标签: python graph coordinates graph-tool


    【解决方案1】:

    顶点根据行优先顺序编号,因此您可以根据它们的索引计算坐标:

    g = lattice([10, 5])                                                   
    x = g.new_vp("double", arange(g.num_vertices()) % 10)                  
    y = g.new_vp("double", arange(g.num_vertices()) // 10)                 
    pos = group_vector_property([x,y])                                     
    
    graph_draw(g, pos, output="lattice.png")
    

    【讨论】:

    • 注意:arange 是一个 numpy 函数,因此如果未定义,可能需要 np.arange
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-13
    相关资源
    最近更新 更多