如何使用 graph_tool 获取点阵图的 X Y 坐标

How to get X Y coordinates of lattice graph using graph_tool

我正在使用 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 的方向是否正确?

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

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")