如何使用graph_tool获得晶格图的X Y坐标

问题描述 投票:0回答:1

我正在使用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")

graph with vertex numbers

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

我使用sfdp_layout正确的方向吗?

python graph coordinates graph-tool
1个回答
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")

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.